glsl/parser: handle multiple layout sections with AST nodes.
authorDave Airlie <airlied@redhat.com>
Mon, 23 May 2016 05:55:06 +0000 (15:55 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 23 May 2016 06:20:01 +0000 (16:20 +1000)
For geometry/compute inputs and tess control outputs, we create
an AST node to keep track of some things. However if we have
multiple layout sections, we don't ever link the node into the AST.

This is because we create the node on the rightmost layout declaration
and don't pass it back in so it gets linked at the end of the parsing
of the rightmost.

Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/compiler/glsl/glsl_parser.yy

index 09e346da164e3743883d6edf0f16f7366be969ba..3885688d9b8e5a07ddd73cde432c363710611c50 100644 (file)
@@ -2859,6 +2859,7 @@ layout_in_defaults:
                 merge_in_qualifier(& @1, state, $1, $$, false)) {
             YYERROR;
          }
+         $$ = $2;
       }
    }
    | layout_qualifier IN_TOK ';'
@@ -2883,6 +2884,7 @@ layout_out_defaults:
                 merge_out_qualifier(& @1, state, $1, $$, false)) {
             YYERROR;
          }
+         $$ = $2;
       }
    }
    | layout_qualifier OUT_TOK ';'