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

Author: Lars Hamre <cheme...@gmail.com>
Date:   Mon Mar 28 20:42:14 2016 -0400

glsl: invalidate float suffixes for GLSL 1.10 and GLSL ES 1.00

Float suffixes are not allowed in GLSL 1.10 nor GLSL ES 1.00.

Fixes the following piglit tests:
tests/spec/glsl-1.10/compiler/literals/invalid-float-suffix-capital-f.vert
tests/spec/glsl-1.10/compiler/literals/invalid-float-suffix-f.vert`

v2: modify error message
v3: parse the float instead of returning an ERROR_TOK
v4: (by Ken) Change to is_version(120, 300) to avoid breaking ES3
    shaders; update commit message accordingly.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81585
Signed-off-by: Lars Hamre <cheme...@gmail.com>
Reviewed-by: Timothy Arceri <timothy.arc...@collabora.com>
Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

---

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

diff --git a/src/compiler/glsl/glsl_lexer.ll b/src/compiler/glsl/glsl_lexer.ll
index 883c58f..5492045 100644
--- a/src/compiler/glsl/glsl_lexer.ll
+++ b/src/compiler/glsl/glsl_lexer.ll
@@ -472,6 +472,13 @@ layout             {
 \.[0-9]+([eE][+-]?[0-9]+)?[fF]?                |
 [0-9]+\.([eE][+-]?[0-9]+)?[fF]?                |
 [0-9]+[eE][+-]?[0-9]+[fF]?             {
+                           struct _mesa_glsl_parse_state *state = yyextra;
+                           char suffix = yytext[strlen(yytext) - 1];
+                           if (!state->is_version(120, 300) &&
+                               (suffix == 'f' || suffix == 'F')) {
+                               _mesa_glsl_error(yylloc, state,
+                                                "Float suffixes are invalid in 
GLSL 1.10");
+                           }
                            yylval->real = _mesa_strtof(yytext, NULL);
                            return FLOATCONSTANT;
                        }

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to