summaryrefslogtreecommitdiffstats
path: root/src/glsl/glcpp
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2014-07-02 10:32:46 -0700
committerIan Romanick <ian.d.romanick@intel.com>2014-08-07 16:08:29 -0700
commita48ff781c1cac00ad432edf88fafa44e667fa90f (patch)
treec398ba898969bec91d1f81fc370661bde59036f6 /src/glsl/glcpp
parentbf9bce5bea17e8034927e34bcafa4c694790d9b9 (diff)
downloadexternal_mesa3d-a48ff781c1cac00ad432edf88fafa44e667fa90f.zip
external_mesa3d-a48ff781c1cac00ad432edf88fafa44e667fa90f.tar.gz
external_mesa3d-a48ff781c1cac00ad432edf88fafa44e667fa90f.tar.bz2
glsl/glcpp: Swallow empty #pragma directives.
Previously, we were passing these through, just like any other pragma. But the downstream compiler was tripping up on them. It seems easier to swallow these in the preprocessor and not pass them on at all rather than fixing the downstream compiler. This fixes the following Khronos GLES3 CTS tests: preprocessor.pragmas.pragma_vertex preprocessor.pragmas.pragma_fragment Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/glcpp')
-rw-r--r--src/glsl/glcpp/glcpp-lex.l6
-rw-r--r--src/glsl/glcpp/tests/127-pragma-empty.c.expected2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
index 430abd4..aeaf8ab 100644
--- a/src/glsl/glcpp/glcpp-lex.l
+++ b/src/glsl/glcpp/glcpp-lex.l
@@ -287,6 +287,12 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
RETURN_STRING_TOKEN (VERSION_TOKEN);
}
+ /* Swallow empty #pragma directives, (to avoid confusing the
+ * downstream compiler). */
+<HASH>pragma{HSPACE}*/[\r\n] {
+ BEGIN INITIAL;
+}
+
/* glcpp doesn't handle #extension, #version, or #pragma directives.
* Simply pass them through to the main compiler's lexer/parser. */
<HASH>(extension|pragma)[^\r\n]* {
diff --git a/src/glsl/glcpp/tests/127-pragma-empty.c.expected b/src/glsl/glcpp/tests/127-pragma-empty.c.expected
index 89fe08e..92371a0 100644
--- a/src/glsl/glcpp/tests/127-pragma-empty.c.expected
+++ b/src/glsl/glcpp/tests/127-pragma-empty.c.expected
@@ -1,3 +1,3 @@
-#pragma
+