NOTE: someone with access will need to commit this patch after the review process
Invalidates float suffixes for glsl 1.10 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` 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> --- src/compiler/glsl/glsl_lexer.ll | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/glsl_lexer.ll b/src/compiler/glsl/glsl_lexer.ll index 1f12265..0980f4f 100644 --- a/src/compiler/glsl/glsl_lexer.ll +++ b/src/compiler/glsl/glsl_lexer.ll @@ -472,8 +472,17 @@ layout { \.[0-9]+([eE][+-]?[0-9]+)?[fF]? | [0-9]+\.([eE][+-]?[0-9]+)?[fF]? | [0-9]+[eE][+-]?[0-9]+[fF]? { - yylval->real = _mesa_strtof(yytext, NULL); - return FLOATCONSTANT; + struct _mesa_glsl_parse_state *state = yyextra; + char suffix = yytext[strlen(yytext) - 1]; + if (!state->is_version(120, 0) && + (suffix == 'f' || suffix == 'F')) { + _mesa_glsl_error(yylloc, state, + "Float suffixes are invalid in GLSL 1.10"); + return ERROR_TOK; + } else { + yylval->real = _mesa_strtof(yytext, NULL); + return FLOATCONSTANT; + } } [0-9]+\.[0-9]+([eE][+-]?[0-9]+)?(lf|LF) | -- 2.5.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev