glsl: Don't add structure fields to the symbol table
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 6 Dec 2012 22:57:01 +0000 (14:57 -0800)
committerAndreas Boll <andreas.boll.dev@gmail.com>
Sun, 20 Jan 2013 14:08:29 +0000 (15:08 +0100)
I erroneously added this back in January 2011 in commit 88421589.
Looking at the commit message, I have no idea why I added it.  It only
added non-array structure fields to the symbol table, so array structure
fields are treated correctly.

Fixes piglit tests structure-and-field-have-same-name.vert and
structure-and-field-have-same-name-nested.vert.  It should also fix
WebGL conformance tests shader-with-non-reserved-words.

NOTE: This is a candidate for the stable release branches.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57622
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit ed3f237e09a42bdb55afb58d1536affad9000d76)

src/glsl/glsl_parser.yy

index ee6a672..6dd3d76 100644 (file)
@@ -1581,7 +1581,6 @@ struct_declarator:
           void *ctx = state;
           $$ = new(ctx) ast_declaration($1, false, NULL, NULL);
           $$->set_location(yylloc);
-          state->symbols->add_variable(new(state) ir_variable(NULL, $1, ir_var_auto));
        }
        | any_identifier '[' constant_expression ']'
        {