summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2012-11-20 17:23:42 -0800
committerMatt Turner <[email protected]>2012-11-28 10:26:53 -0800
commitaed466192a78ff2bb3db877a9599424de708cf90 (patch)
tree33e7e1f4700aff357776d57e703ec9fc5cf5815b
parent91ca053714957aca5205122e8478002c62cc4344 (diff)
glcpp: Reject #version and #line not followed by whitespace
Fixes part of es3conform's preprocess16_frag test. Reviewed-by: Carl Worth <[email protected]>
-rw-r--r--src/glsl/glcpp/glcpp-lex.l4
-rw-r--r--src/glsl/glcpp/tests/108-no-space-after-hash-version.c1
-rw-r--r--src/glsl/glcpp/tests/108-no-space-after-hash-version.c.expected2
-rw-r--r--src/glsl/glcpp/tests/109-no-space-after-hash-line.c1
-rw-r--r--src/glsl/glcpp/tests/109-no-space-after-hash-line.c.expected2
5 files changed, 8 insertions, 2 deletions
diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
index 783c545495e..4f0dd34d30d 100644
--- a/src/glsl/glcpp/glcpp-lex.l
+++ b/src/glsl/glcpp/glcpp-lex.l
@@ -120,7 +120,7 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
return SPACE;
}
-{HASH}version {
+{HASH}version{HSPACE}+ {
yylval->str = ralloc_strdup (yyextra, yytext);
yyextra->space_tokens = 0;
return HASH_VERSION;
@@ -135,7 +135,7 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
return OTHER;
}
-{HASH}line {
+{HASH}line{HSPACE}+ {
return HASH_LINE;
}
diff --git a/src/glsl/glcpp/tests/108-no-space-after-hash-version.c b/src/glsl/glcpp/tests/108-no-space-after-hash-version.c
new file mode 100644
index 00000000000..0ce36f2eb1b
--- /dev/null
+++ b/src/glsl/glcpp/tests/108-no-space-after-hash-version.c
@@ -0,0 +1 @@
+#version110
diff --git a/src/glsl/glcpp/tests/108-no-space-after-hash-version.c.expected b/src/glsl/glcpp/tests/108-no-space-after-hash-version.c.expected
new file mode 100644
index 00000000000..da4544a55ca
--- /dev/null
+++ b/src/glsl/glcpp/tests/108-no-space-after-hash-version.c.expected
@@ -0,0 +1,2 @@
+0:1(3): preprocessor error: Invalid tokens after #
+
diff --git a/src/glsl/glcpp/tests/109-no-space-after-hash-line.c b/src/glsl/glcpp/tests/109-no-space-after-hash-line.c
new file mode 100644
index 00000000000..f52966a8e80
--- /dev/null
+++ b/src/glsl/glcpp/tests/109-no-space-after-hash-line.c
@@ -0,0 +1 @@
+#line2
diff --git a/src/glsl/glcpp/tests/109-no-space-after-hash-line.c.expected b/src/glsl/glcpp/tests/109-no-space-after-hash-line.c.expected
new file mode 100644
index 00000000000..da4544a55ca
--- /dev/null
+++ b/src/glsl/glcpp/tests/109-no-space-after-hash-line.c.expected
@@ -0,0 +1,2 @@
+0:1(3): preprocessor error: Invalid tokens after #
+