Tests: Increase testing around incorrect use of block names and instances.
diff --git a/Test/300block.frag b/Test/300block.frag
index 9556a7c..e665b5e 100644
--- a/Test/300block.frag
+++ b/Test/300block.frag
@@ -43,4 +43,16 @@
{
texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z));
insts[s.v.x]; // ERROR
+ fooBlock; // ERROR
+ mat4(s); // ERROR
+ int insts;
+ float barBlock;
+ mat4(barBlock);
+ mat4(unreferenced); // ERROR, bad type
+ ++s; // ERROR
+ inst - 1; // ERROR
+ ++barBlock;
+ 2 * barBlockArray; // ERROR
}
+
+int fooBlock; // ERROR, redef.
diff --git a/Test/baseResults/300block.frag.out b/Test/baseResults/300block.frag.out
index b787964..4756e66 100644
--- a/Test/baseResults/300block.frag.out
+++ b/Test/baseResults/300block.frag.out
@@ -3,7 +3,19 @@
ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block
ERROR: 0:20: 'sampler' : member of block cannot be a sampler type
ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions
-ERROR: 4 compilation errors. No code generated.
+ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed)
+ERROR: 0:46: 'fooBlock' : undeclared identifier
+ERROR: 0:47: 'constructor' : not enough data provided for construction
+ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed)
+ERROR: 0:51: 'unreferenced' : undeclared identifier
+ERROR: 0:52: '++' : l-value required "s" (can't modify a uniform)
+ERROR: 0:52: '++' : wrong operand type no operation '++' exists that takes an operand of type uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} (or there is no acceptable conversion)
+ERROR: 0:53: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni}' and a right operand of type 'const int' (or there is no acceptable conversion)
+ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed)
+ERROR: 0:55: 'barBlockArray' : undeclared identifier
+ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type 'const int' and a right operand of type 'temp float' (or there is no acceptable conversion)
+ERROR: 0:58: 'fooBlock' : redefinition
+ERROR: 16 compilation errors. No code generated.
Shader version: 300
@@ -50,6 +62,19 @@
0:45 1 (const int)
0:45 Constant:
0:45 0 (const int)
+0:46 'fooBlock' (temp float)
+0:47 Constant:
+0:47 0.000000
+0:50 Construct mat4 (temp 4X4 matrix of float)
+0:50 'barBlock' (temp mediump float)
+0:51 Construct mat4 (temp 4X4 matrix of float)
+0:51 'unreferenced' (temp float)
+0:52 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:53 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:54 Pre-Increment (temp mediump float)
+0:54 'barBlock' (temp mediump float)
+0:55 Constant:
+0:55 2 (const int)
0:? Linker Objects
0:? 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
@@ -105,6 +130,19 @@
0:45 1 (const int)
0:45 Constant:
0:45 0 (const int)
+0:46 'fooBlock' (temp float)
+0:47 Constant:
+0:47 0.000000
+0:50 Construct mat4 (temp 4X4 matrix of float)
+0:50 'barBlock' (temp mediump float)
+0:51 Construct mat4 (temp 4X4 matrix of float)
+0:51 'unreferenced' (temp float)
+0:52 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:53 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:54 Pre-Increment (temp mediump float)
+0:54 'barBlock' (temp mediump float)
+0:55 Constant:
+0:55 2 (const int)
0:? Linker Objects
0:? 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})