Without this, in the <PP> state, we would hit Flex's default rule, which prints tokens to stdout, rather than returning them as tokens.
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> --- src/glsl/glsl_lexer.ll | 1 + 1 file changed, 1 insertion(+) Not sure if this should be a stable candidate or not. It rejects more shaders. But printing random text on the console is really unexpected as well... diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll index 6c3f9b6..ef30bcb 100644 --- a/src/glsl/glsl_lexer.ll +++ b/src/glsl/glsl_lexer.ll @@ -236,6 +236,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