for reference the bug I've created for this: https://bugs.freedesktop.org/show_bug.cgi?id=97420
and thanks for fixing this 2016-11-04 13:22 GMT+01:00 Juan A. Suarez Romero <jasua...@igalia.com>: > Shader can define #version as an integer, including 0. > > Initializes version to -1 to know later if shader has defined a #version > or not. > > It fixes 4 piglit tests: > spec/glsl-1.10/compiler/version-0.frag: crash pass > spec/glsl-1.10/compiler/version-0.vert: crash pass > spec/glsl-es-3.00/compiler/version-0.frag: crash pass > spec/glsl-es-3.00/compiler/version-0.vert: crash pass > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97420 > --- > src/compiler/glsl/glcpp/glcpp-parse.y | 8 ++++---- > src/compiler/glsl/glcpp/glcpp.h | 2 +- > src/compiler/glsl/glsl_lexer.ll | 2 +- > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y > b/src/compiler/glsl/glcpp/glcpp-parse.y > index b80ff04..6207a62 100644 > --- a/src/compiler/glsl/glcpp/glcpp-parse.y > +++ b/src/compiler/glsl/glcpp/glcpp-parse.y > @@ -420,13 +420,13 @@ control_line_success: > _glcpp_parser_skip_stack_pop (parser, & @1); > } NEWLINE > | HASH_TOKEN VERSION_TOKEN integer_constant NEWLINE { > - if (parser->version != 0) { > + if (parser->version != -1) { > glcpp_error(& @1, parser, "#version must appear on > the first line"); > } > _glcpp_parser_handle_version_declaration(parser, $3, NULL, > true); > } > | HASH_TOKEN VERSION_TOKEN integer_constant IDENTIFIER NEWLINE { > - if (parser->version != 0) { > + if (parser->version != -1) { > glcpp_error(& @1, parser, "#version must appear on > the first line"); > } > _glcpp_parser_handle_version_declaration(parser, $3, $4, > true); > @@ -1360,7 +1360,7 @@ glcpp_parser_create(glcpp_extension_iterator > extensions, void *state, gl_api api > parser->extensions = extensions; > parser->state = state; > parser->api = api; > - parser->version = 0; > + parser->version = -1; > > parser->has_new_line_number = 0; > parser->new_line_number = 1; > @@ -2293,7 +2293,7 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t > *parser, intmax_t versio > const char *es_identifier, > bool explicitly_set) > { > - if (parser->version != 0) > + if (parser->version != -1) > return; > > parser->version = version; > diff --git a/src/compiler/glsl/glcpp/glcpp.h b/src/compiler/glsl/glcpp/glcpp.h > index bb4ad67..2acac0c 100644 > --- a/src/compiler/glsl/glcpp/glcpp.h > +++ b/src/compiler/glsl/glcpp/glcpp.h > @@ -207,7 +207,7 @@ struct glcpp_parser { > glcpp_extension_iterator extensions; > void *state; > gl_api api; > - unsigned version; > + int version; > bool has_new_line_number; > int new_line_number; > bool has_new_source_number; > diff --git a/src/compiler/glsl/glsl_lexer.ll b/src/compiler/glsl/glsl_lexer.ll > index b473af7..7d1d616 100644 > --- a/src/compiler/glsl/glsl_lexer.ll > +++ b/src/compiler/glsl/glsl_lexer.ll > @@ -249,7 +249,7 @@ HASH ^{SPC}#{SPC} > yylval->identifier = > linear_strdup(mem_ctx, yytext); > return IDENTIFIER; > } > -<PP>[1-9][0-9]* { > +<PP>[0-9][0-9]* { > yylval->n = strtol(yytext, NULL, 10); > return INTCONSTANT; > } > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev