Mesa (master): glsl: Parse 0 as a preprocessor INTCONSTANT

Ian Romanick idr at kemper.freedesktop.org
Thu Nov 10 18:58:36 UTC 2016


Module: Mesa
Branch: master
Commit: c8c46641af43edd106528ac0293db5aa02a2364e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8c46641af43edd106528ac0293db5aa02a2364e

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Tue Nov  8 11:14:49 2016 -0800

glsl: Parse 0 as a preprocessor INTCONSTANT

This allows a more reasonable error message for '#version 0' of

    0:1(10): error: GLSL 0.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES

instead of

    0:1(10): error: syntax error, unexpected $undefined, expecting INTCONSTANT

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97420
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
Cc: mesa-stable at lists.freedesktop.org
Cc: Juan A. Suarez Romero <jasuarez at igalia.com>
Cc: Karol Herbst <karolherbst at gmail.com>

---

 src/compiler/glsl/glsl_lexer.ll | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/compiler/glsl/glsl_lexer.ll b/src/compiler/glsl/glsl_lexer.ll
index b473af7..0e722cb 100644
--- a/src/compiler/glsl/glsl_lexer.ll
+++ b/src/compiler/glsl/glsl_lexer.ll
@@ -253,6 +253,10 @@ HASH		^{SPC}#{SPC}
 				    yylval->n = strtol(yytext, NULL, 10);
 				    return INTCONSTANT;
 				}
+<PP>0				{
+				    yylval->n = 0;
+				    return INTCONSTANT;
+				}
 <PP>\n				{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
 <PP>.				{ return yytext[0]; }
 




More information about the mesa-commit mailing list