summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/glsl_parser.yy
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/glsl/glsl_parser.yy')
-rw-r--r--src/compiler/glsl/glsl_parser.yy27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy
index 9136fddbd14..0c3781c3361 100644
--- a/src/compiler/glsl/glsl_parser.yy
+++ b/src/compiler/glsl/glsl_parser.yy
@@ -845,7 +845,9 @@ declaration:
}
}
block->layout = block->default_layout;
-
+ if (!block->layout.push_to_global(& @1, state)) {
+ YYERROR;
+ }
$$ = $1;
}
;
@@ -921,6 +923,9 @@ parameter_declaration:
{
$$ = $2;
$$->type->qualifier = $1;
+ if (!$$->type->qualifier.push_to_global(& @1, state)) {
+ YYERROR;
+ }
}
| parameter_qualifier parameter_type_specifier
{
@@ -930,6 +935,9 @@ parameter_declaration:
$$->type = new(ctx) ast_fully_specified_type();
$$->type->set_location_range(@1, @2);
$$->type->qualifier = $1;
+ if (!$$->type->qualifier.push_to_global(& @1, state)) {
+ YYERROR;
+ }
$$->type->specifier = $2;
}
;
@@ -1145,6 +1153,9 @@ fully_specified_type:
$$ = new(ctx) ast_fully_specified_type();
$$->set_location_range(@1, @2);
$$->qualifier = $1;
+ if (!$$->qualifier.push_to_global(& @1, state)) {
+ YYERROR;
+ }
$$->specifier = $2;
if ($$->specifier->structure != NULL &&
$$->specifier->structure->is_declaration) {
@@ -2911,6 +2922,10 @@ layout_defaults:
merge_qualifier(& @1, state, $1, false)) {
YYERROR;
}
+ if (!state->default_uniform_qualifier->
+ push_to_global(& @1, state)) {
+ YYERROR;
+ }
}
| layout_buffer_defaults
{
@@ -2919,6 +2934,10 @@ layout_defaults:
merge_qualifier(& @1, state, $1, false)) {
YYERROR;
}
+ if (!state->default_shader_storage_qualifier->
+ push_to_global(& @1, state)) {
+ YYERROR;
+ }
/* From the GLSL 4.50 spec, section 4.4.5:
*
@@ -2936,6 +2955,9 @@ layout_defaults:
if (!$1.merge_into_in_qualifier(& @1, state, $$)) {
YYERROR;
}
+ if (!state->in_qualifier->push_to_global(& @1, state)) {
+ YYERROR;
+ }
}
| layout_out_defaults
{
@@ -2943,5 +2965,8 @@ layout_defaults:
if (!$1.merge_into_out_qualifier(& @1, state, $$)) {
YYERROR;
}
+ if (!state->out_qualifier->push_to_global(& @1, state)) {
+ YYERROR;
+ }
}
;