Fix slight inconsistencies in which qualifiers are inherited into block members:

- don't inherit 'binding'
 - always set the member storage qualifier, not just when the shader explicitly set it
 - don't include in/out members as objects that are resized by geometry/primitive layout specifiers
As a side effect, this makes built-in redeclarations (like gl_ClipDistance) require in/out.


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24674 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2014-01-07 17:44:41 +00:00
parent 7cbfdf4394
commit 5053a39578
30 changed files with 343 additions and 339 deletions

View file

@ -1102,7 +1102,7 @@ layout_qualifier_id_list
| layout_qualifier_id_list COMMA layout_qualifier_id {
$$ = $1;
$$.shaderQualifiers.merge($3.shaderQualifiers);
parseContext.mergeObjectLayoutQualifiers($2.loc, $$.qualifier, $3.qualifier);
parseContext.mergeObjectLayoutQualifiers($2.loc, $$.qualifier, $3.qualifier, false);
}
layout_qualifier_id
@ -2285,7 +2285,7 @@ case_label
parseContext.constantValueCheck($2, "case");
parseContext.integerCheck($2, "case");
$$ = parseContext.intermediate.addBranch(EOpCase, $2, $1.loc);
}
}
}
| DEFAULT COLON {
$$ = 0;