diff options
author | Andres Gomez <[email protected]> | 2016-11-14 12:23:32 +0200 |
---|---|---|
committer | Andres Gomez <[email protected]> | 2016-11-25 13:18:30 +0200 |
commit | fe5c522edd2e809adc46d44d73a49574fc686929 (patch) | |
tree | 964eb483a63de6ddc4c1f70b44369c7e99fe92f2 /src/compiler/glsl/glsl_parser.yy | |
parent | 70456aca8d1934ec53c24cfe1cfb4273d2bc9397 (diff) |
glsl: split default out layout qualifier merge
Currently, the default out layout qualifier merge performs specific
validation and merge.
We want to split out the validation from the merge so they can be done
independently.
Additionally, for simplification, the direction of the validation and
merge is changed so the ast_type_qualifier calling the method is the
one validated and merged against the default out qualifier.
Reviewed-by: Timothy Arceri <[email protected]>
Signed-off-by: Andres Gomez <[email protected]>
Diffstat (limited to 'src/compiler/glsl/glsl_parser.yy')
-rw-r--r-- | src/compiler/glsl/glsl_parser.yy | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy index f0f212c1722..a96989bee9b 100644 --- a/src/compiler/glsl/glsl_parser.yy +++ b/src/compiler/glsl/glsl_parser.yy @@ -2942,8 +2942,10 @@ layout_out_defaults: _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers"); YYERROR; } else { - if (!state->out_qualifier-> - merge_out_qualifier(& @1, state, $1, $$, false)) { + if (!$1.validate_out_qualifier(& @1, state)) { + YYERROR; + } + if (!$1.merge_into_out_qualifier(& @1, state, $$, false)) { YYERROR; } $$ = $2; @@ -2952,9 +2954,12 @@ layout_out_defaults: | layout_qualifier OUT_TOK ';' { $$ = NULL; - if (!state->out_qualifier-> - merge_out_qualifier(& @1, state, $1, $$, true)) + if (!$1.validate_out_qualifier(& @1, state)) { YYERROR; + } + if (!$1.merge_into_out_qualifier(& @1, state, $$, true)) { + YYERROR; + } } ; |