glsl: allow multiple layout qualifiers for a single declaration
authorTimothy Arceri <timothy.arceri@collabora.com>
Fri, 15 Jan 2016 01:43:10 +0000 (12:43 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Tue, 19 Jan 2016 21:06:50 +0000 (08:06 +1100)
commit6a660a5f5dad02a6594ea905c511ba3cae6862a5
tree0041c81a83867d5741f7d7456abba01c74a48223
parent564009986ff1485c467664542a9042e6ce4dcdfe
glsl: allow multiple layout qualifiers for a single declaration

From the ARB_shading_language_420pack spec:

   "More than one layout qualifier may appear in a single
   declaration. If the same layout-qualifier-name occurs in
   multiple layout qualifiers for the same declaration, the
   last one overrides the former ones."

The parser was already failing correctly when the extension is
not available but testing for duplicates within a single layout
qualifier was still causing this to fail when available as both
cases share the same function for merging.

Here we add a parameter to differentiate between the two uses
and apply it to the duplicate test.

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/glsl/ast.h
src/glsl/ast_type.cpp
src/glsl/glsl_parser.yy