On 04/20/2012 08:20 AM, Olivier Galibert wrote:
Guys, it's a bugfix, it's five lines changed, and it's falling through the cracks... Can someone have a look?
From my reply on 4/13: Do you have a specific test case in mind that fails without this patch but passes with?
OG. On Wed, Apr 11, 2012 at 10:56:51AM +0200, Olivier Galibert wrote:Type selection must be extended w.r.t version and extension lines as soon as it is possible, and in any case before the lookahead is done to check the nature of the next line. Otherwise code such as: #version 400 dmat2 function inverse(dmat2 m) { ... } fails because "dmat2" has already been lexed as a NEW_IDENTIFIER before _mesa_glsl_initialize_types is called. Signed-off-by: Olivier Galibert<[email protected]> --- src/glsl/glsl_parser.yy | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) [Sorry, resent with the correct subject...] diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy index 64506b6..9a0af95 100644 --- a/src/glsl/glsl_parser.yy +++ b/src/glsl/glsl_parser.yy @@ -233,9 +233,6 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg) translation_unit: version_statement extension_statement_list - { - _mesa_glsl_initialize_types(state); - } external_declaration_list { delete state->symbols; @@ -285,6 +282,7 @@ version_statement: state->version_string, state->supported_version_string); } + _mesa_glsl_initialize_types(state); } ; @@ -322,6 +320,7 @@ extension_statement: if (!_mesa_glsl_process_extension($2,& @2, $4,& @4, state)) { YYERROR; } + _mesa_glsl_initialize_types(state); } ; -- 1.7.4 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
