diff options
author | Carl Worth <[email protected]> | 2014-07-02 10:32:46 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2014-08-07 16:08:29 -0700 |
commit | a48ff781c1cac00ad432edf88fafa44e667fa90f (patch) | |
tree | c398ba898969bec91d1f81fc370661bde59036f6 /src/glsl | |
parent | bf9bce5bea17e8034927e34bcafa4c694790d9b9 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/glcpp/glcpp-lex.l | 6 | ||||
-rw-r--r-- | src/glsl/glcpp/tests/127-pragma-empty.c.expected | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l index 430abd4bfa3..aeaf8abdf8a 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 89fe08e8876..92371a07c32 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 + |