[Mesa-dev] [PATCH 1/2] glsl/glcpp: Promote "extra token at end of directive" from warning to error
Carl Worth
cworth at cworth.org
Fri Jun 13 16:04:43 PDT 2014
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 at least 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
---
src/glsl/glcpp/glcpp-parse.y | 2 +-
src/glsl/glcpp/tests/126-garbage-after-directive.c | 5 +++++
src/glsl/glcpp/tests/126-garbage-after-directive.c.expected | 8 ++++++++
3 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 src/glsl/glcpp/tests/126-garbage-after-directive.c
create mode 100644 src/glsl/glcpp/tests/126-garbage-after-directive.c.expected
diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
index 8447584..e5a816b 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 0000000..4c0d290
--- /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 0000000..95a9e61
--- /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
+
+
+
+
+
+
--
2.0.0
More information about the mesa-dev
mailing list