summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Worth <[email protected]>2014-06-13 15:40:42 -0700
committerCarl Worth <[email protected]>2014-07-09 12:05:14 -0700
commit43047384c331a9240339563704fe5d97ebe599d7 (patch)
treebfbaa15c9fc0b606b2c24520ecfaef41a95a768e
parentdac3c986c546b674873f217e3137c3bcd25663a7 (diff)
glsl/glcpp: Promote "extra token at end of directive" from warning to error
We've always warned about this case, but a recent confromance test expects this to be an error that causes compilation to fail. Make it so. Also add a "make check" test to ensure these errors are generated. This fixes the following Khronos GLES3 conformance tests: invalid_conditionals.tokens_after_ifdef_vertex invalid_conditionals.tokens_after_ifdef_fragment invalid_conditionals.tokens_after_ifndef_vertex invalid_conditionals.tokens_after_ifndef_fragment Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/glsl/glcpp/glcpp-parse.y2
-rw-r--r--src/glsl/glcpp/tests/126-garbage-after-directive.c5
-rw-r--r--src/glsl/glcpp/tests/126-garbage-after-directive.c.expected8
3 files changed, 14 insertions, 1 deletions
diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
index 267940156c4..21c85b410f5 100644
--- a/src/glsl/glcpp/glcpp-parse.y
+++ b/src/glsl/glcpp/glcpp-parse.y
@@ -625,7 +625,7 @@ replacement_list:
junk:
/* empty */
| pp_tokens {
- glcpp_warning(&@1, parser, "extra tokens at end of directive");
+ glcpp_error(&@1, parser, "extra tokens at end of directive");
}
;
diff --git a/src/glsl/glcpp/tests/126-garbage-after-directive.c b/src/glsl/glcpp/tests/126-garbage-after-directive.c
new file mode 100644
index 00000000000..4c0d29000a3
--- /dev/null
+++ b/src/glsl/glcpp/tests/126-garbage-after-directive.c
@@ -0,0 +1,5 @@
+#ifdef MACRO garbage
+#endif
+
+#ifndef MORE garbage
+#endif
diff --git a/src/glsl/glcpp/tests/126-garbage-after-directive.c.expected b/src/glsl/glcpp/tests/126-garbage-after-directive.c.expected
new file mode 100644
index 00000000000..95a9e61ebcb
--- /dev/null
+++ b/src/glsl/glcpp/tests/126-garbage-after-directive.c.expected
@@ -0,0 +1,8 @@
+0:1(15): preprocessor error: extra tokens at end of directive
+0:4(14): preprocessor error: extra tokens at end of directive
+
+
+
+
+
+