From: Kenneth Graunke <kenn...@whitecape.org>

Without this, in the <PP> state, we would hit Flex's default rule, which
prints tokens to stdout, rather than returning them as tokens. (Or, after the
previous commit, we would hit the new catch-all rule and generate an internal
compiler error.)

With this commit in place, we generate the desired syntax error.

This manifested as a weird bug where shaders with semicolons after
extension directives, such as:

   #extension GL_foo_bar : enable;

would print semicolons to the screen, but otherwise compile just fine
(even though this is illegal).

Fixes Piglit's extension-semicolon.frag test.

Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
Reviewed-by: Carl Worth <cwo...@cworth.org>
---
 src/glsl/glsl_lexer.ll | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
index 1cadf1f..1a0dde2 100644
--- a/src/glsl/glsl_lexer.ll
+++ b/src/glsl/glsl_lexer.ll
@@ -239,6 +239,7 @@ HASH                ^{SPC}#{SPC}
                                    return INTCONSTANT;
                                }
 <PP>\n                         { BEGIN 0; yylineno++; yycolumn = 0; return 
EOL; }
+<PP>.                          { return yytext[0]; }
 
 \n             { yylineno++; yycolumn = 0; }
 
-- 
2.0.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to