Fix missing semantic check: Disallow layout qualifiers when augmenting an already...
authorJohn Kessenich <cepheus@frii.com>
Thu, 13 Feb 2014 19:14:33 +0000 (19:14 +0000)
committerJohn Kessenich <cepheus@frii.com>
Thu, 13 Feb 2014 19:14:33 +0000 (19:14 +0000)
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25351 e7fa87d3-cd2b-0410-9028-fcbf551c1848

Install/Windows/glslangValidator.exe
Test/300.vert
Test/baseResults/120.vert.out
Test/baseResults/300.vert.out
Test/baseResults/specExamples.vert.out
glslang/Include/revision.h
glslang/MachineIndependent/ParseHelper.cpp

index f3ee9f3..60c4ad9 100644 (file)
Binary files a/Install/Windows/glslangValidator.exe and b/Install/Windows/glslangValidator.exe differ
index 05a5932..11a0078 100644 (file)
@@ -159,3 +159,12 @@ int agggf(float f) { return 2; }
 int agggf(float f);
 
 out struct Ssss { float f; } ssss;
+
+uniform Bblock {
+   int a;
+} Binst;
+int Bfoo;
+
+layout(std140) Binst;    // ERROR
+layout(std140) Bblock;   // ERROR
+layout(std140) Bfoo;     // ERROR
index 4b99b0d..a2063a0 100644 (file)
@@ -1,7 +1,7 @@
 120.vert\r
 ERROR: 0:3: 'in for stage inputs' : not supported for this version or the enabled extensions \r
 ERROR: 0:4: 'out for stage outputs' : not supported for this version or the enabled extensions \r
-ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, or precision qualifier to an existing variable \r
+ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable \r
 ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) \r
 ERROR: 0:12: '' : replicated qualifiers \r
 ERROR: 0:12: 'foo' : identifier not previously declared \r
index 2e9dfae..3b2deac 100644 (file)
@@ -35,7 +35,10 @@ ERROR: 0:146: '' : array size required
 ERROR: 0:147: '' : array size required \r
 ERROR: 0:148: '' : array size required \r
 ERROR: 0:149: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type \r
-ERROR: 36 compilation errors.  No code generated.\r
+ERROR: 0:168: 'Binst' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable \r
+ERROR: 0:169: 'Bblock' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable \r
+ERROR: 0:170: 'Bfoo' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable \r
+ERROR: 39 compilation errors.  No code generated.\r
 \r
 \r
 ERROR: node is still EOpNull!\r
@@ -286,6 +289,8 @@ ERROR: node is still EOpNull!
 0:?     's2DAS' (uniform lowp sampler2DArrayShadow)\r
 0:?     'c2D' (in highp 2-component vector of float)\r
 0:?     'ssss' (smooth out structure{highp float f})\r
+0:?     'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})\r
+0:?     'Bfoo' (highp int)\r
 0:?     'gl_VertexID' (gl_VertexId highp int)\r
 0:?     'gl_InstanceID' (gl_InstanceId highp int)\r
 \r
index 0a7c408..dded395 100644 (file)
@@ -34,6 +34,7 @@ ERROR: 0:97: 'binding' : requires block, or sampler/image, or atomic-counter typ
 ERROR: 0:106: '' : vertex input cannot be further qualified \r
 ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor\r
 ERROR: 0:112: 'ColorIvn' : identifier not previously declared \r
+WARNING: 0:118: '' : unknown requalification \r
 ERROR: 0:132: 'shared' : not supported in this stage: vertex\r
 ERROR: 0:134: '' : function does not return a value: funcA\r
 ERROR: 0:136: '' : function does not return a value: funcB\r
index 8e56eb8..c18f60d 100644 (file)
@@ -9,5 +9,5 @@
 // source have to figure out how to create revision.h just to get a build\r
 // going.  However, if it is not updated, it can be a version behind.\r
 \r
-#define GLSLANG_REVISION "25220"\r
-#define GLSLANG_DATE     "2014/02/03 09:28:23"\r
+#define GLSLANG_REVISION "25314"\r
+#define GLSLANG_DATE     "2014/02/11 22:15:49"\r
index bb4560e..d2b63de 100644 (file)
@@ -4187,10 +4187,10 @@ void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier,
     if (qualifier.isAuxiliary() ||
         qualifier.isMemory() ||
         qualifier.isInterpolation() ||
+        qualifier.hasLayout() ||
         qualifier.storage != EvqTemporary ||
         qualifier.precision != EpqNone) {
-        error(loc, "cannot add storage, auxiliary, memory, interpolation, or precision qualifier to an existing variable", identifier.c_str(), "");
-
+        error(loc, "cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable", identifier.c_str(), "");
         return;
     }
 
@@ -4204,7 +4204,8 @@ void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier,
             error(loc, "cannot change qualification after use", "invariant", "");
         symbol->getWritableType().getQualifier().invariant = true;
         invariantCheck(loc, symbol->getType(), identifier);
-    }
+    } else
+        warn(loc, "unknown requalification", "", "");
 }
 
 void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier, TIdentifierList& identifiers)