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
diff --git a/Test/150.geom b/Test/150.geom
index ffb7286..9cb7466 100644
--- a/Test/150.geom
+++ b/Test/150.geom
@@ -1,11 +1,11 @@
 #version 150 core

 

 in fromVertex {

-    vec3 color;

+    in vec3 color;

 } fromV[];

 

 out toFragment {

-    vec3 color;

+    out vec3 color;

 } toF;

 

 out fromVertex {  // okay to reuse a block name for another block name

diff --git a/Test/150.vert b/Test/150.vert
index 68a996e..9c0beb1 100644
--- a/Test/150.vert
+++ b/Test/150.vert
@@ -14,7 +14,7 @@
     gl_ClipVertex = iv4;

 }

 

-float gl_ClipDistance[4];

+out float gl_ClipDistance[4];

 

 uniform foob {

     int a[];

diff --git a/Test/300block.frag b/Test/300block.frag
index 25aab8a..9556a7c 100644
--- a/Test/300block.frag
+++ b/Test/300block.frag
@@ -16,7 +16,7 @@
 
 uniform fooBlock {
     uvec4 bv;
-    mat2 bm2;
+    uniform mat2 bm2;
     lowp isampler2D sampler;   // ERROR
     struct T2 {           // ERROR
         int a;
diff --git a/Test/430.vert b/Test/430.vert
index e5b27c4..bde1231 100644
--- a/Test/430.vert
+++ b/Test/430.vert
@@ -44,4 +44,4 @@
 layout(location = 10) in vec4 alias1;

 layout(location = 10) in vec4 alias2;  // okay for vertex input on desktop

 

-float gl_ClipDistance[17];  // ERROR, size too big
\ No newline at end of file
+out float gl_ClipDistance[17];  // ERROR, size too big
\ No newline at end of file
diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out
index 0bd5acd..cc06792 100644
--- a/Test/baseResults/100.frag.out
+++ b/Test/baseResults/100.frag.out
@@ -325,7 +325,7 @@
 0:?     'uint' (mediump int)

 0:?     'v' (smooth in 3-element array of mediump 4-component vector of float)

 0:?     'f' (mediump float)

-0:?     '__anon__0' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump int x})

+0:?     '__anon__0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})

 0:?     'fa' (unsized array of mediump float)

 0:?     'f13' (mediump float)

 0:?     'fi' (invariant mediump float)

diff --git a/Test/baseResults/150.geom.out b/Test/baseResults/150.geom.out
index 5ce6787..59180a7 100644
--- a/Test/baseResults/150.geom.out
+++ b/Test/baseResults/150.geom.out
@@ -47,29 +47,29 @@
 0:30      Constant:

 0:30        0.000000

 0:32      move second child to first child (3-component vector of float)

-0:32        color: direct index for structure (layout(stream=0 ) 3-component vector of float)

-0:32          '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) 3-component vector of float color})

+0:32        color: direct index for structure (layout(stream=0 ) out 3-component vector of float)

+0:32          '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

 0:32          Constant:

 0:32            0 (const uint)

-0:32        color: direct index for structure (3-component vector of float)

-0:32          direct index (block{3-component vector of float color})

-0:32            'fromV' (in 4-element array of block{3-component vector of float color})

+0:32        color: direct index for structure (in 3-component vector of float)

+0:32          direct index (block{in 3-component vector of float color})

+0:32            'fromV' (in 4-element array of block{in 3-component vector of float color})

 0:32            Constant:

 0:32              0 (const int)

 0:32          Constant:

 0:32            0 (const int)

 0:33      move second child to first child (float)

 0:33        direct index (layout(stream=0 ) float)

-0:33          gl_ClipDistance: direct index for structure (layout(stream=0 ) unsized array of float)

-0:33            '__anon__1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float gl_Position, layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) unsized array of float gl_ClipDistance})

+0:33          gl_ClipDistance: direct index for structure (layout(stream=0 ) out unsized array of float)

+0:33            '__anon__1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float gl_Position, layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) out unsized array of float gl_ClipDistance})

 0:33            Constant:

 0:33              2 (const uint)

 0:33          Constant:

 0:33            3 (const int)

 0:33        direct index (float)

-0:33          gl_ClipDistance: direct index for structure (unsized array of float)

-0:33            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:33              'gl_in' (in 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          gl_ClipDistance: direct index for structure (in unsized array of float)

+0:33            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:33              'gl_in' (in 4-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:33              Constant:

 0:33                1 (const int)

 0:33            Constant:

@@ -78,24 +78,24 @@
 0:33            2 (const int)

 0:34      move second child to first child (4-component vector of float)

 0:34        gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float)

-0:34          '__anon__1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float gl_Position, layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) unsized array of float gl_ClipDistance})

+0:34          '__anon__1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float gl_Position, layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) out unsized array of float gl_ClipDistance})

 0:34          Constant:

 0:34            0 (const uint)

-0:34        gl_Position: direct index for structure (4-component vector of float)

-0:34          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:34            'gl_in' (in 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:34        gl_Position: direct index for structure (in 4-component vector of float)

+0:34          direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:34            'gl_in' (in 4-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:34            Constant:

 0:34              0 (const int)

 0:34          Constant:

 0:34            0 (const int)

 0:35      move second child to first child (float)

 0:35        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float)

-0:35          '__anon__1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float gl_Position, layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) unsized array of float gl_ClipDistance})

+0:35          '__anon__1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float gl_Position, layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) out unsized array of float gl_ClipDistance})

 0:35          Constant:

 0:35            1 (const uint)

-0:35        gl_PointSize: direct index for structure (float)

-0:35          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:35            'gl_in' (in 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:35        gl_PointSize: direct index for structure (in float)

+0:35          direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:35            'gl_in' (in 4-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:35            Constant:

 0:35              3 (const int)

 0:35          Constant:

@@ -112,8 +112,8 @@
 0:65      'a' (in int)

 0:67    Sequence

 0:67      move second child to first child (4-component vector of float)

-0:67        a: direct index for structure (layout(stream=6 ) 4-component vector of float)

-0:67          'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) 4-component vector of float a})

+0:67        a: direct index for structure (layout(stream=6 ) out 4-component vector of float)

+0:67          'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

 0:67          Constant:

 0:67            0 (const int)

 0:67        Constant:

@@ -122,28 +122,28 @@
 0:67          1.000000

 0:67          1.000000

 0:?   Linker Objects

-0:?     'fromV' (in 4-element array of block{3-component vector of float color})

-0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) 3-component vector of float color})

-0:?     '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) 3-component vector of float color})

-0:?     'gl_in' (in 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:?     'fromV' (in 4-element array of block{in 3-component vector of float color})

+0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

+0:?     '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

+0:?     'gl_in' (in 4-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:?     'ov0' (layout(stream=0 ) out 4-component vector of float)

 0:?     'ov4' (layout(stream=4 ) out 4-component vector of float)

 0:?     'o1v0' (layout(stream=0 ) out 4-component vector of float)

 0:?     'ua' (layout(stream=3 ) uniform int)

-0:?     'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) int ua})

+0:?     'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})

 0:?     'ov3' (layout(stream=3 ) out 4-component vector of float)

-0:?     'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) 4-component vector of float a})

-0:?     'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) 4-component vector of float a})

-0:?     'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) 4-component vector of float a})

+0:?     'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

+0:?     'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

+0:?     'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})

 0:?     'ov2s3' (layout(stream=3 ) out 4-component vector of float)

 0:?     'badv4' (layout(stream=3 ) out 4-component vector of float)

 0:?     'bad2v4' (in 4-element array of 4-component vector of float)

-0:?     '__anon__1' (layout(stream=3 ) out block{layout(stream=3 ) int a})

-0:?     'outbi' (layout(stream=3 ) out block{layout(stream=3 ) int a, layout(stream=3 ) int b, layout(stream=3 ) int c})

-0:?     'inbi' (in 4-element array of block{layout(stream=2 ) int a})

-0:?     'insn' (in 4-element array of block{int a15})

-0:?     '__anon__2' (layout(stream=3 ) out block{layout(stream=3 ) float f15})

-0:?     '__anon__3' (layout(column_major shared ) uniform block{layout(column_major shared ) bool b15})

+0:?     '__anon__1' (layout(stream=3 ) out block{layout(stream=3 ) out int a})

+0:?     'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})

+0:?     'inbi' (in 4-element array of block{layout(stream=2 ) in int a})

+0:?     'insn' (in 4-element array of block{in int a15})

+0:?     '__anon__2' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})

+0:?     '__anon__3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})

 

 

 Linked geometry stage:

diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out
index 28c2a92..f6258e9 100644
--- a/Test/baseResults/150.tesc.out
+++ b/Test/baseResults/150.tesc.out
@@ -15,9 +15,9 @@
 0:20      Sequence

 0:20        move second child to first child (4-component vector of float)

 0:20          'p' (4-component vector of float)

-0:20          gl_Position: direct index for structure (4-component vector of float)

-0:20            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:20              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:20          gl_Position: direct index for structure (in 4-component vector of float)

+0:20            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:20              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:20              Constant:

 0:20                1 (const int)

 0:20            Constant:

@@ -25,9 +25,9 @@
 0:21      Sequence

 0:21        move second child to first child (float)

 0:21          'ps' (float)

-0:21          gl_PointSize: direct index for structure (float)

-0:21            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:21              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:21          gl_PointSize: direct index for structure (in float)

+0:21            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:21              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:21              Constant:

 0:21                1 (const int)

 0:21            Constant:

@@ -36,9 +36,9 @@
 0:22        move second child to first child (float)

 0:22          'cd' (float)

 0:22          direct index (float)

-0:22            gl_ClipDistance: direct index for structure (unsized array of float)

-0:22              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:22                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:22            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:22              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:22                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:22                Constant:

 0:22                  1 (const int)

 0:22              Constant:

@@ -58,18 +58,18 @@
 0:26          'iid' (int)

 0:26          'gl_InvocationID' (in int)

 0:28      move second child to first child (4-component vector of float)

-0:28        gl_Position: direct index for structure (4-component vector of float)

-0:28          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:28            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:28        gl_Position: direct index for structure (out 4-component vector of float)

+0:28          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:28            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:28            Constant:

 0:28              1 (const int)

 0:28          Constant:

 0:28            0 (const int)

 0:28        'p' (4-component vector of float)

 0:29      move second child to first child (float)

-0:29        gl_PointSize: direct index for structure (float)

-0:29          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:29            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:29        gl_PointSize: direct index for structure (out float)

+0:29          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:29            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:29            Constant:

 0:29              1 (const int)

 0:29          Constant:

@@ -77,9 +77,9 @@
 0:29        'ps' (float)

 0:30      move second child to first child (float)

 0:30        direct index (float)

-0:30          gl_ClipDistance: direct index for structure (unsized array of float)

-0:30            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:30              'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:30          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:30            direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:30              'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:30              Constant:

 0:30                1 (const int)

 0:30            Constant:

@@ -104,7 +104,7 @@
 0:?   Linker Objects

 0:?     'outa' (4-element array of int)

 0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 

 150.tese

 Warning, version 150 is not yet complete; some version-specific features are present, but many are missing.

@@ -130,9 +130,9 @@
 0:22      Sequence

 0:22        move second child to first child (4-component vector of float)

 0:22          'p' (4-component vector of float)

-0:22          gl_Position: direct index for structure (4-component vector of float)

-0:22            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:22              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:22          gl_Position: direct index for structure (in 4-component vector of float)

+0:22            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:22              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:22              Constant:

 0:22                1 (const int)

 0:22            Constant:

@@ -140,9 +140,9 @@
 0:23      Sequence

 0:23        move second child to first child (float)

 0:23          'ps' (float)

-0:23          gl_PointSize: direct index for structure (float)

-0:23            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:23          gl_PointSize: direct index for structure (in float)

+0:23            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:23              Constant:

 0:23                1 (const int)

 0:23            Constant:

@@ -151,9 +151,9 @@
 0:24        move second child to first child (float)

 0:24          'cd' (float)

 0:24          direct index (float)

-0:24            gl_ClipDistance: direct index for structure (unsized array of float)

-0:24              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:24                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:24            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:24              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:24                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:24                Constant:

 0:24                  1 (const int)

 0:24              Constant:

@@ -188,20 +188,20 @@
 0:30              1 (const int)

 0:32      move second child to first child (4-component vector of float)

 0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:32          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:32          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:32          Constant:

 0:32            0 (const uint)

 0:32        'p' (4-component vector of float)

 0:33      move second child to first child (float)

 0:33        gl_PointSize: direct index for structure (gl_PointSize float)

-0:33          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:33          Constant:

 0:33            1 (const uint)

 0:33        'ps' (float)

 0:34      move second child to first child (float)

 0:34        direct index (float)

-0:34          gl_ClipDistance: direct index for structure (unsized array of float)

-0:34            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:34          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:34            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:34            Constant:

 0:34              2 (const uint)

 0:34          Constant:

@@ -240,9 +240,9 @@
 0:23      Sequence

 0:23        move second child to first child (4-component vector of float)

 0:23          'p' (4-component vector of float)

-0:23          gl_Position: direct index for structure (4-component vector of float)

-0:23            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:23          gl_Position: direct index for structure (in 4-component vector of float)

+0:23            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:23              Constant:

 0:23                1 (const int)

 0:23            Constant:

@@ -250,9 +250,9 @@
 0:24      Sequence

 0:24        move second child to first child (float)

 0:24          'ps' (float)

-0:24          gl_PointSize: direct index for structure (float)

-0:24            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:24              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:24          gl_PointSize: direct index for structure (in float)

+0:24            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:24              Constant:

 0:24                1 (const int)

 0:24            Constant:

@@ -261,9 +261,9 @@
 0:25        move second child to first child (float)

 0:25          'cd' (float)

 0:25          direct index (float)

-0:25            gl_ClipDistance: direct index for structure (unsized array of float)

-0:25              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:25                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:25            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:25              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:25                Constant:

 0:25                  1 (const int)

 0:25              Constant:

@@ -283,18 +283,18 @@
 0:29          'iid' (int)

 0:29          'gl_InvocationID' (in int)

 0:31      move second child to first child (4-component vector of float)

-0:31        gl_Position: direct index for structure (4-component vector of float)

-0:31          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:31            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:31        gl_Position: direct index for structure (out 4-component vector of float)

+0:31          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:31            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:31            Constant:

 0:31              1 (const int)

 0:31          Constant:

 0:31            0 (const int)

 0:31        'p' (4-component vector of float)

 0:32      move second child to first child (float)

-0:32        gl_PointSize: direct index for structure (float)

-0:32          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:32            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:32        gl_PointSize: direct index for structure (out float)

+0:32          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:32            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:32            Constant:

 0:32              1 (const int)

 0:32          Constant:

@@ -302,9 +302,9 @@
 0:32        'ps' (float)

 0:33      move second child to first child (float)

 0:33        direct index (float)

-0:33          gl_ClipDistance: direct index for structure (unsized array of float)

-0:33            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:33              'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:33            direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:33              'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:33              Constant:

 0:33                1 (const int)

 0:33            Constant:

@@ -329,9 +329,9 @@
 0:42  Function Definition: foo( (void)

 0:42    Function Parameters: 

 0:44    Sequence

-0:44      gl_PointSize: direct index for structure (float)

-0:44        direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:44          'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:44      gl_PointSize: direct index for structure (out float)

+0:44        direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:44          'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:44          Constant:

 0:44            4 (const int)

 0:44        Constant:

@@ -340,7 +340,7 @@
 0:?     'outa' (4-element array of int)

 0:?     'patchIn' (patch in 4-component vector of float)

 0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:?     'ina' (in 2-component vector of float)

 0:?     'inb' (in 32-element array of 2-component vector of float)

 0:?     'inc' (in 32-element array of 2-component vector of float)

@@ -404,9 +404,9 @@
 0:32      Sequence

 0:32        move second child to first child (4-component vector of float)

 0:32          'p' (4-component vector of float)

-0:32          gl_Position: direct index for structure (4-component vector of float)

-0:32            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:32              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:32          gl_Position: direct index for structure (in 4-component vector of float)

+0:32            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:32              Constant:

 0:32                1 (const int)

 0:32            Constant:

@@ -414,9 +414,9 @@
 0:33      Sequence

 0:33        move second child to first child (float)

 0:33          'ps' (float)

-0:33          gl_PointSize: direct index for structure (float)

-0:33            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:33              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          gl_PointSize: direct index for structure (in float)

+0:33            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:33              Constant:

 0:33                1 (const int)

 0:33            Constant:

@@ -425,9 +425,9 @@
 0:34        move second child to first child (float)

 0:34          'cd' (float)

 0:34          direct index (float)

-0:34            gl_ClipDistance: direct index for structure (unsized array of float)

-0:34              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:34                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:34            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:34              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:34                Constant:

 0:34                  1 (const int)

 0:34              Constant:

@@ -462,20 +462,20 @@
 0:40              1 (const int)

 0:42      move second child to first child (4-component vector of float)

 0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:42          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:42          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:42          Constant:

 0:42            0 (const uint)

 0:42        'p' (4-component vector of float)

 0:43      move second child to first child (float)

 0:43        gl_PointSize: direct index for structure (gl_PointSize float)

-0:43          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:43          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:43          Constant:

 0:43            1 (const uint)

 0:43        'ps' (float)

 0:44      move second child to first child (float)

 0:44        direct index (float)

-0:44          gl_ClipDistance: direct index for structure (unsized array of float)

-0:44            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:44          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:44            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:44            Constant:

 0:44              2 (const uint)

 0:44          Constant:

@@ -488,15 +488,15 @@
 0:?     'badp2' (flat patch in 4-component vector of float)

 0:?     'badp3' (noperspective patch in 4-component vector of float)

 0:?     'badp4' (patch sample in 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{unsized array of float gl_ClipDistance})

+0:?     'gl_in' (in 32-element array of block{in unsized array of float gl_ClipDistance})

 0:?     'ina' (in 2-component vector of float)

 0:?     'inb' (in 32-element array of 2-component vector of float)

 0:?     'inc' (in 32-element array of 2-component vector of float)

 0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'bla' (in block{int f})

-0:?     'blb' (in 32-element array of block{int f})

-0:?     'blc' (in 32-element array of block{int f})

-0:?     'bld' (in 32-element array of block{int f})

+0:?     'bla' (in block{in int f})

+0:?     'blb' (in 32-element array of block{in int f})

+0:?     'blc' (in 32-element array of block{in int f})

+0:?     'bld' (in 32-element array of block{in int f})

 0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)

 0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)

 0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)

@@ -523,7 +523,7 @@
 ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a

 ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb

 ERROR: 0:26: 'gl_PointSize' :  no such field in structure 

-ERROR: 0:26: 'assign' :  cannot convert from 'float' to 'block{4-component vector of float gl_Position}'

+ERROR: 0:26: 'assign' :  cannot convert from 'float' to 'block{out 4-component vector of float gl_Position}'

 ERROR: 0:29: 'out' : type must be an array: outf

 ERROR: 6 compilation errors.  No code generated.

 

@@ -536,9 +536,9 @@
 0:17      Sequence

 0:17        move second child to first child (4-component vector of float)

 0:17          'p' (4-component vector of float)

-0:17          gl_Position: direct index for structure (4-component vector of float)

-0:17            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:17              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:17          gl_Position: direct index for structure (in 4-component vector of float)

+0:17            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:17              Constant:

 0:17                1 (const int)

 0:17            Constant:

@@ -546,9 +546,9 @@
 0:18      Sequence

 0:18        move second child to first child (float)

 0:18          'ps' (float)

-0:18          gl_PointSize: direct index for structure (float)

-0:18            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:18              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:18          gl_PointSize: direct index for structure (in float)

+0:18            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:18              Constant:

 0:18                1 (const int)

 0:18            Constant:

@@ -557,9 +557,9 @@
 0:19        move second child to first child (float)

 0:19          'cd' (float)

 0:19          direct index (float)

-0:19            gl_ClipDistance: direct index for structure (unsized array of float)

-0:19              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:19                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:19            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:19              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:19                Constant:

 0:19                  1 (const int)

 0:19              Constant:

@@ -579,20 +579,20 @@
 0:23          'iid' (int)

 0:23          'gl_InvocationID' (in int)

 0:25      move second child to first child (4-component vector of float)

-0:25        gl_Position: direct index for structure (4-component vector of float)

-0:25          direct index (block{4-component vector of float gl_Position})

-0:25            'gl_out' (out 3-element array of block{4-component vector of float gl_Position})

+0:25        gl_Position: direct index for structure (out 4-component vector of float)

+0:25          direct index (block{out 4-component vector of float gl_Position})

+0:25            'gl_out' (out 3-element array of block{out 4-component vector of float gl_Position})

 0:25            Constant:

 0:25              1 (const int)

 0:25          Constant:

 0:25            0 (const int)

 0:25        'p' (4-component vector of float)

-0:26      direct index (block{4-component vector of float gl_Position})

-0:26        'gl_out' (out 3-element array of block{4-component vector of float gl_Position})

+0:26      direct index (block{out 4-component vector of float gl_Position})

+0:26        'gl_out' (out 3-element array of block{out 4-component vector of float gl_Position})

 0:26        Constant:

 0:26          1 (const int)

 0:?   Linker Objects

-0:?     'gl_out' (out 3-element array of block{4-component vector of float gl_Position})

+0:?     'gl_out' (out 3-element array of block{out 4-component vector of float gl_Position})

 0:?     'a' (out 3-element array of int)

 0:?     'outb' (out 5-element array of int)

 0:?     'outc' (out 4-element array of int)

@@ -779,7 +779,7 @@
 ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

     main(

 ERROR: Linking tessellation control stage: Types must match:

-    gl_out: "out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance}" versus "out 3-element array of block{4-component vector of float gl_Position}"

+    gl_out: "out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance}" versus "out 3-element array of block{out 4-component vector of float gl_Position}"

 

 Linked tessellation evaluation stage:

 

@@ -807,9 +807,9 @@
 0:20      Sequence

 0:20        move second child to first child (4-component vector of float)

 0:20          'p' (4-component vector of float)

-0:20          gl_Position: direct index for structure (4-component vector of float)

-0:20            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:20              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:20          gl_Position: direct index for structure (in 4-component vector of float)

+0:20            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:20              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:20              Constant:

 0:20                1 (const int)

 0:20            Constant:

@@ -817,9 +817,9 @@
 0:21      Sequence

 0:21        move second child to first child (float)

 0:21          'ps' (float)

-0:21          gl_PointSize: direct index for structure (float)

-0:21            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:21              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:21          gl_PointSize: direct index for structure (in float)

+0:21            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:21              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:21              Constant:

 0:21                1 (const int)

 0:21            Constant:

@@ -828,9 +828,9 @@
 0:22        move second child to first child (float)

 0:22          'cd' (float)

 0:22          direct index (float)

-0:22            gl_ClipDistance: direct index for structure (unsized array of float)

-0:22              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:22                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:22            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:22              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:22                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:22                Constant:

 0:22                  1 (const int)

 0:22              Constant:

@@ -850,18 +850,18 @@
 0:26          'iid' (int)

 0:26          'gl_InvocationID' (in int)

 0:28      move second child to first child (4-component vector of float)

-0:28        gl_Position: direct index for structure (4-component vector of float)

-0:28          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:28            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:28        gl_Position: direct index for structure (out 4-component vector of float)

+0:28          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:28            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:28            Constant:

 0:28              1 (const int)

 0:28          Constant:

 0:28            0 (const int)

 0:28        'p' (4-component vector of float)

 0:29      move second child to first child (float)

-0:29        gl_PointSize: direct index for structure (float)

-0:29          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:29            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:29        gl_PointSize: direct index for structure (out float)

+0:29          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:29            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:29            Constant:

 0:29              1 (const int)

 0:29          Constant:

@@ -869,9 +869,9 @@
 0:29        'ps' (float)

 0:30      move second child to first child (float)

 0:30        direct index (float)

-0:30          gl_ClipDistance: direct index for structure (unsized array of float)

-0:30            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:30              'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:30          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:30            direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:30              'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:30              Constant:

 0:30                1 (const int)

 0:30            Constant:

@@ -905,9 +905,9 @@
 0:23      Sequence

 0:23        move second child to first child (4-component vector of float)

 0:23          'p' (4-component vector of float)

-0:23          gl_Position: direct index for structure (4-component vector of float)

-0:23            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:23          gl_Position: direct index for structure (in 4-component vector of float)

+0:23            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:23              Constant:

 0:23                1 (const int)

 0:23            Constant:

@@ -915,9 +915,9 @@
 0:24      Sequence

 0:24        move second child to first child (float)

 0:24          'ps' (float)

-0:24          gl_PointSize: direct index for structure (float)

-0:24            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:24              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:24          gl_PointSize: direct index for structure (in float)

+0:24            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:24              Constant:

 0:24                1 (const int)

 0:24            Constant:

@@ -926,9 +926,9 @@
 0:25        move second child to first child (float)

 0:25          'cd' (float)

 0:25          direct index (float)

-0:25            gl_ClipDistance: direct index for structure (unsized array of float)

-0:25              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:25                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:25            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:25              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:25                Constant:

 0:25                  1 (const int)

 0:25              Constant:

@@ -948,18 +948,18 @@
 0:29          'iid' (int)

 0:29          'gl_InvocationID' (in int)

 0:31      move second child to first child (4-component vector of float)

-0:31        gl_Position: direct index for structure (4-component vector of float)

-0:31          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:31            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:31        gl_Position: direct index for structure (out 4-component vector of float)

+0:31          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:31            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:31            Constant:

 0:31              1 (const int)

 0:31          Constant:

 0:31            0 (const int)

 0:31        'p' (4-component vector of float)

 0:32      move second child to first child (float)

-0:32        gl_PointSize: direct index for structure (float)

-0:32          direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:32            'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:32        gl_PointSize: direct index for structure (out float)

+0:32          direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:32            'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:32            Constant:

 0:32              1 (const int)

 0:32          Constant:

@@ -967,9 +967,9 @@
 0:32        'ps' (float)

 0:33      move second child to first child (float)

 0:33        direct index (float)

-0:33          gl_ClipDistance: direct index for structure (unsized array of float)

-0:33            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:33              'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:33            direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:33              'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:33              Constant:

 0:33                1 (const int)

 0:33            Constant:

@@ -994,9 +994,9 @@
 0:42  Function Definition: foo( (void)

 0:42    Function Parameters: 

 0:44    Sequence

-0:44      gl_PointSize: direct index for structure (float)

-0:44        direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:44          'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:44      gl_PointSize: direct index for structure (out float)

+0:44        direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

+0:44          'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:44          Constant:

 0:44            4 (const int)

 0:44        Constant:

@@ -1009,9 +1009,9 @@
 0:17      Sequence

 0:17        move second child to first child (4-component vector of float)

 0:17          'p' (4-component vector of float)

-0:17          gl_Position: direct index for structure (4-component vector of float)

-0:17            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:17              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:17          gl_Position: direct index for structure (in 4-component vector of float)

+0:17            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:17              Constant:

 0:17                1 (const int)

 0:17            Constant:

@@ -1019,9 +1019,9 @@
 0:18      Sequence

 0:18        move second child to first child (float)

 0:18          'ps' (float)

-0:18          gl_PointSize: direct index for structure (float)

-0:18            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:18              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:18          gl_PointSize: direct index for structure (in float)

+0:18            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:18              Constant:

 0:18                1 (const int)

 0:18            Constant:

@@ -1030,9 +1030,9 @@
 0:19        move second child to first child (float)

 0:19          'cd' (float)

 0:19          direct index (float)

-0:19            gl_ClipDistance: direct index for structure (unsized array of float)

-0:19              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:19                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:19            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:19              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:19                Constant:

 0:19                  1 (const int)

 0:19              Constant:

@@ -1052,22 +1052,22 @@
 0:23          'iid' (int)

 0:23          'gl_InvocationID' (in int)

 0:25      move second child to first child (4-component vector of float)

-0:25        gl_Position: direct index for structure (4-component vector of float)

-0:25          direct index (block{4-component vector of float gl_Position})

-0:25            'gl_out' (out 3-element array of block{4-component vector of float gl_Position})

+0:25        gl_Position: direct index for structure (out 4-component vector of float)

+0:25          direct index (block{out 4-component vector of float gl_Position})

+0:25            'gl_out' (out 3-element array of block{out 4-component vector of float gl_Position})

 0:25            Constant:

 0:25              1 (const int)

 0:25          Constant:

 0:25            0 (const int)

 0:25        'p' (4-component vector of float)

-0:26      direct index (block{4-component vector of float gl_Position})

-0:26        'gl_out' (out 3-element array of block{4-component vector of float gl_Position})

+0:26      direct index (block{out 4-component vector of float gl_Position})

+0:26        'gl_out' (out 3-element array of block{out 4-component vector of float gl_Position})

 0:26        Constant:

 0:26          1 (const int)

 0:?   Linker Objects

 0:?     'outa' (4-element array of int)

 0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'gl_out' (out 4-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:?     'patchIn' (patch in 4-component vector of float)

 0:?     'ina' (in 2-component vector of float)

 0:?     'inb' (in 32-element array of 2-component vector of float)

@@ -1101,9 +1101,9 @@
 0:22      Sequence

 0:22        move second child to first child (4-component vector of float)

 0:22          'p' (4-component vector of float)

-0:22          gl_Position: direct index for structure (4-component vector of float)

-0:22            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:22              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:22          gl_Position: direct index for structure (in 4-component vector of float)

+0:22            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:22              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:22              Constant:

 0:22                1 (const int)

 0:22            Constant:

@@ -1111,9 +1111,9 @@
 0:23      Sequence

 0:23        move second child to first child (float)

 0:23          'ps' (float)

-0:23          gl_PointSize: direct index for structure (float)

-0:23            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:23          gl_PointSize: direct index for structure (in float)

+0:23            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:23              Constant:

 0:23                1 (const int)

 0:23            Constant:

@@ -1122,9 +1122,9 @@
 0:24        move second child to first child (float)

 0:24          'cd' (float)

 0:24          direct index (float)

-0:24            gl_ClipDistance: direct index for structure (unsized array of float)

-0:24              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:24                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:24            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:24              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:24                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:24                Constant:

 0:24                  1 (const int)

 0:24              Constant:

@@ -1159,20 +1159,20 @@
 0:30              1 (const int)

 0:32      move second child to first child (4-component vector of float)

 0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:32          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:32          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:32          Constant:

 0:32            0 (const uint)

 0:32        'p' (4-component vector of float)

 0:33      move second child to first child (float)

 0:33        gl_PointSize: direct index for structure (gl_PointSize float)

-0:33          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:33          Constant:

 0:33            1 (const uint)

 0:33        'ps' (float)

 0:34      move second child to first child (float)

 0:34        direct index (float)

-0:34          gl_ClipDistance: direct index for structure (unsized array of float)

-0:34            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:34          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:34            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:34            Constant:

 0:34              2 (const uint)

 0:34          Constant:

@@ -1191,9 +1191,9 @@
 0:32      Sequence

 0:32        move second child to first child (4-component vector of float)

 0:32          'p' (4-component vector of float)

-0:32          gl_Position: direct index for structure (4-component vector of float)

-0:32            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:32              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:32          gl_Position: direct index for structure (in 4-component vector of float)

+0:32            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:32              Constant:

 0:32                1 (const int)

 0:32            Constant:

@@ -1201,9 +1201,9 @@
 0:33      Sequence

 0:33        move second child to first child (float)

 0:33          'ps' (float)

-0:33          gl_PointSize: direct index for structure (float)

-0:33            direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:33              'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:33          gl_PointSize: direct index for structure (in float)

+0:33            direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:33              Constant:

 0:33                1 (const int)

 0:33            Constant:

@@ -1212,9 +1212,9 @@
 0:34        move second child to first child (float)

 0:34          'cd' (float)

 0:34          direct index (float)

-0:34            gl_ClipDistance: direct index for structure (unsized array of float)

-0:34              direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:34                'gl_in' (in 32-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:34            gl_ClipDistance: direct index for structure (in unsized array of float)

+0:34              direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:34                Constant:

 0:34                  1 (const int)

 0:34              Constant:

@@ -1249,20 +1249,20 @@
 0:40              1 (const int)

 0:42      move second child to first child (4-component vector of float)

 0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:42          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:42          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:42          Constant:

 0:42            0 (const uint)

 0:42        'p' (4-component vector of float)

 0:43      move second child to first child (float)

 0:43        gl_PointSize: direct index for structure (gl_PointSize float)

-0:43          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:43          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:43          Constant:

 0:43            1 (const uint)

 0:43        'ps' (float)

 0:44      move second child to first child (float)

 0:44        direct index (float)

-0:44          gl_ClipDistance: direct index for structure (unsized array of float)

-0:44            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance})

+0:44          gl_ClipDistance: direct index for structure (out unsized array of float)

+0:44            '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance})

 0:44            Constant:

 0:44              2 (const uint)

 0:44          Constant:

@@ -1349,15 +1349,15 @@
 0:?     'badp2' (flat patch in 4-component vector of float)

 0:?     'badp3' (noperspective patch in 4-component vector of float)

 0:?     'badp4' (patch sample in 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{unsized array of float gl_ClipDistance})

+0:?     'gl_in' (in 32-element array of block{in unsized array of float gl_ClipDistance})

 0:?     'ina' (in 2-component vector of float)

 0:?     'inb' (in 32-element array of 2-component vector of float)

 0:?     'inc' (in 32-element array of 2-component vector of float)

 0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'bla' (in block{int f})

-0:?     'blb' (in 32-element array of block{int f})

-0:?     'blc' (in 32-element array of block{int f})

-0:?     'bld' (in 32-element array of block{int f})

+0:?     'bla' (in block{in int f})

+0:?     'blb' (in 32-element array of block{in int f})

+0:?     'blc' (in 32-element array of block{in int f})

+0:?     'bld' (in 32-element array of block{in int f})

 0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)

 0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)

 0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)

diff --git a/Test/baseResults/150.vert.out b/Test/baseResults/150.vert.out
index eb71629..62f7750 100644
--- a/Test/baseResults/150.vert.out
+++ b/Test/baseResults/150.vert.out
@@ -10,20 +10,20 @@
 0:11    Sequence

 0:11      move second child to first child (4-component vector of float)

 0:11        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float)

-0:11          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:11          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:11          Constant:

 0:11            0 (const uint)

 0:11        'iv4' (in 4-component vector of float)

 0:12      move second child to first child (float)

 0:12        gl_PointSize: direct index for structure (gl_PointSize float)

-0:12          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:12          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:12          Constant:

 0:12            1 (const uint)

 0:12        'ps' (uniform float)

 0:13      move second child to first child (float)

 0:13        direct index (float)

-0:13          gl_ClipDistance: direct index for structure (4-element array of float)

-0:13            '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:13          gl_ClipDistance: direct index for structure (out 4-element array of float)

+0:13            '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:13            Constant:

 0:13              2 (const uint)

 0:13          Constant:

@@ -34,14 +34,14 @@
 0:13            0 (const int)

 0:14      move second child to first child (4-component vector of float)

 0:14        gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float)

-0:14          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:14          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out 4-element array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:14          Constant:

 0:14            3 (const uint)

 0:14        'iv4' (in 4-component vector of float)

 0:?   Linker Objects

 0:?     'iv4' (in 4-component vector of float)

 0:?     'ps' (uniform float)

-0:?     '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) unsized array of int a})

+0:?     '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform unsized array of int a})

 0:?     'gl_VertexID' (gl_VertexId int)

 0:?     'gl_InstanceID' (gl_InstanceId int)

 

diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out
index 10b2fd9..f1f80a8 100644
--- a/Test/baseResults/300.frag.out
+++ b/Test/baseResults/300.frag.out
@@ -381,7 +381,7 @@
 0:?     'sc' (out lowp 3-component vector of float)

 0:?     'sf' (out lowp float)

 0:?     'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:?     'multiInst' (layout(column_major shared ) uniform 2-element array of block{layout(column_major shared ) 2-element array of mediump int a, layout(column_major shared ) 2-element array of mediump int b, layout(column_major shared ) 2-element array of mediump int c})

+0:?     'multiInst' (layout(column_major shared ) uniform 2-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of mediump int b, layout(column_major shared ) uniform 2-element array of mediump int c})

 0:?     'colors' (out 4-element array of lowp 4-component vector of float)

 0:?     'st1' (uniform structure{mediump int i, lowp sampler2D s})

 0:?     'st2' (uniform structure{mediump int i, lowp sampler2D s})

diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out
index 8f04c21..2e9dfae 100644
--- a/Test/baseResults/300.vert.out
+++ b/Test/baseResults/300.vert.out
@@ -272,14 +272,14 @@
 0:?     's' (smooth out structure{highp 3-component vector of float c, highp float f})

 0:?     'badsize' (unsized array of highp float)

 0:?     'badsize2' (unsized array of highp float)

-0:?     'ubInst' (layout(column_major shared ) uniform unsized array of block{layout(column_major shared ) unsized array of highp int a})

+0:?     'ubInst' (layout(column_major shared ) uniform unsized array of block{layout(column_major shared ) uniform unsized array of highp int a})

 0:?     'okayA' (2-element array of highp float)

 0:?     'newV' (smooth out highp 3-component vector of float)

 0:?     'invIn' (in highp 4-component vector of float)

 0:?     's2' (smooth out structure{highp 3-component vector of float c, highp float f})

 0:?     's3' (invariant smooth out structure{highp 3-component vector of float c, highp float f})

-0:?     'a' (layout(column_major shared ) uniform block{layout(column_major shared ) highp float f})

-0:?     '__anon__0' (layout(column_major shared ) uniform block{layout(column_major shared ) bool b23})

+0:?     'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})

+0:?     '__anon__0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})

 0:?     's2D' (uniform lowp sampler2D)

 0:?     's3D' (uniform lowp sampler3D)

 0:?     's2DS' (uniform lowp sampler2DShadow)

diff --git a/Test/baseResults/300block.frag.out b/Test/baseResults/300block.frag.out
index 80b35a7..98c3c2f 100644
--- a/Test/baseResults/300block.frag.out
+++ b/Test/baseResults/300block.frag.out
@@ -17,31 +17,31 @@
 0:44            2 (const int)

 0:44        Construct vec3 (3-component vector of float)

 0:44          Convert int to float (float)

-0:44            ni: direct index for structure (layout(column_major shared ) mediump int)

-0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

+0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)

+0:44              '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:44              Constant:

 0:44                1 (const int)

 0:44          Convert uint to float (float)

 0:44            direct index (mediump uint)

-0:44              bv: direct index for structure (layout(column_major shared ) mediump 4-component vector of uint)

-0:44                '__anon__0' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump 4-component vector of uint bv, layout(column_major shared ) mediump 2X2 matrix of float bm2, layout(column_major shared ) lowp isampler2D sampler, layout(column_major shared ) structure{mediump int a} t, layout(column_major shared ) structure{mediump 4-component vector of float u, mediump 4-component vector of uint v, lowp isampler3D sampler, mediump 3-component vector of float w, structure{mediump int a} t} fbs})

+0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)

+0:44                '__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{mediump int a} t, layout(column_major shared ) uniform structure{mediump 4-component vector of float u, mediump 4-component vector of uint v, lowp isampler3D sampler, mediump 3-component vector of float w, structure{mediump int a} t} fbs})

 0:44                Constant:

 0:44                  0 (const uint)

 0:44              Constant:

 0:44                1 (const int)

 0:44          Convert uint to float (float)

 0:44            direct index (mediump uint)

-0:44              nbv: direct index for structure (layout(column_major shared ) mediump 4-component vector of uint)

-0:44                direct index (layout(column_major shared ) block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

-0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

+0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)

+0:44                direct index (layout(column_major shared ) block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

+0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

 0:44                  Constant:

 0:44                    2 (const int)

 0:44                Constant:

 0:44                  0 (const int)

 0:44              Constant:

 0:44                2 (const int)

-0:45      indirect index (layout(column_major shared ) block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

-0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

+0:45      indirect index (layout(column_major shared ) block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

+0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

 0:45        direct index (mediump uint)

 0:45          v: direct index for structure (mediump 4-component vector of uint)

 0:45            's' (uniform structure{mediump 4-component vector of float u, mediump 4-component vector of uint v, lowp isampler3D sampler, mediump 3-component vector of float w, structure{mediump int a} t})

@@ -51,10 +51,10 @@
 0:45            0 (const int)

 0:?   Linker Objects

 0:?     's' (uniform structure{mediump 4-component vector of float u, mediump 4-component vector of uint v, lowp isampler3D sampler, mediump 3-component vector of float w, structure{mediump int a} t})

-0:?     '__anon__0' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump 4-component vector of uint bv, layout(column_major shared ) mediump 2X2 matrix of float bm2, layout(column_major shared ) lowp isampler2D sampler, layout(column_major shared ) structure{mediump int a} t, layout(column_major shared ) structure{mediump 4-component vector of float u, mediump 4-component vector of uint v, lowp isampler3D sampler, mediump 3-component vector of float w, structure{mediump int a} t} fbs})

-0:?     'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

-0:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) mediump 4-component vector of uint nbv, layout(column_major shared ) mediump int ni})

-0:?     '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f, layout(column_major shared ) mediump uint u})

+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{mediump int a} t, layout(column_major shared ) uniform structure{mediump 4-component vector of float u, mediump 4-component vector of uint v, lowp isampler3D sampler, mediump 3-component vector of float w, structure{mediump int a} t} fbs})

+0:?     '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:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

+0:?     '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})

 

 

 Linked fragment stage:

diff --git a/Test/baseResults/300layout.vert.out b/Test/baseResults/300layout.vert.out
index 144f30f..a34e63f 100644
--- a/Test/baseResults/300layout.vert.out
+++ b/Test/baseResults/300layout.vert.out
@@ -32,32 +32,32 @@
 0:46            add (highp 4X4 matrix of float)

 0:46              add (highp 4X4 matrix of float)

 0:46                add (highp 4X4 matrix of float)

-0:46                  M1: direct index for structure (layout(row_major std140 ) highp 4X4 matrix of float)

-0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})

+0:46                  M1: direct index for structure (layout(row_major std140 ) uniform highp 4X4 matrix of float)

+0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})

 0:46                    Constant:

 0:46                      0 (const int)

-0:46                  M2: direct index for structure (layout(column_major std140 ) highp 4X4 matrix of float)

-0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})

+0:46                  M2: direct index for structure (layout(column_major std140 ) uniform highp 4X4 matrix of float)

+0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})

 0:46                    Constant:

 0:46                      1 (const int)

-0:46                M4: direct index for structure (layout(row_major shared ) highp 4X4 matrix of float)

-0:46                  '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) highp 4X4 matrix of float M3, layout(row_major shared ) highp 4X4 matrix of float M4, layout(column_major shared ) highp 3X3 matrix of float N2, layout(column_major shared ) highp int b})

+0:46                M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)

+0:46                  '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})

 0:46                  Constant:

 0:46                    1 (const uint)

-0:46              M3: direct index for structure (layout(column_major shared ) highp 4X4 matrix of float)

-0:46                '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) highp 4X4 matrix of float M3, layout(row_major shared ) highp 4X4 matrix of float M4, layout(column_major shared ) highp 3X3 matrix of float N2, layout(column_major shared ) highp int b})

+0:46              M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)

+0:46                '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})

 0:46                Constant:

 0:46                  0 (const uint)

-0:46            t2m: direct index for structure (layout(row_major shared ) highp 4X4 matrix of float)

-0:46              '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) bool b, layout(row_major shared ) highp 4X4 matrix of float t2m})

+0:46            t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)

+0:46              '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})

 0:46              Constant:

 0:46                1 (const uint)

 0:47      move second child to first child (highp 3-component vector of float)

 0:47        'color' (smooth out highp 3-component vector of float)

 0:47        vector-times-matrix (highp 3-component vector of float)

 0:47          'c' (layout(location=7 ) in highp 3-component vector of float)

-0:47          N1: direct index for structure (layout(row_major std140 ) highp 3X3 matrix of float)

-0:47            'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})

+0:47          N1: direct index for structure (layout(row_major std140 ) uniform highp 3X3 matrix of float)

+0:47            'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})

 0:47            Constant:

 0:47              2 (const int)

 0:?   Linker Objects

@@ -68,9 +68,9 @@
 0:?     'pos' (smooth out highp 4-component vector of float)

 0:?     'color' (smooth out highp 3-component vector of float)

 0:?     'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)

-0:?     'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})

-0:?     '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) bool b, layout(row_major shared ) highp 4X4 matrix of float t2m})

-0:?     '__anon__2' (out block{highp float f})

+0:?     'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})

+0:?     '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})

+0:?     '__anon__2' (out block{out highp float f})

 0:?     'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)

 0:?     'compute_only' (shared highp 4-component vector of float)

 0:?     'aoeuntaoeu' (layout(packed ) highp float)

diff --git a/Test/baseResults/300operations.frag.out b/Test/baseResults/300operations.frag.out
index c5a3dd5..a4f8d37 100644
--- a/Test/baseResults/300operations.frag.out
+++ b/Test/baseResults/300operations.frag.out
@@ -1,6 +1,6 @@
 300operations.frag

 ERROR: 0:11: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:30: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f}' and a right operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f}' (or there is no acceptable conversion)

+ERROR: 0:30: '+' :  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 float f}' and a right operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' (or there is no acceptable conversion)

 ERROR: 0:31: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'structure{mediump int i}' and a right operand of type 'structure{mediump int i}' (or there is no acceptable conversion)

 ERROR: 0:32: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'mediump int' and a right operand of type 'mediump float' (or there is no acceptable conversion)

 ERROR: 0:33: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'mediump uint' and a right operand of type 'mediump float' (or there is no acceptable conversion)

@@ -15,7 +15,7 @@
 ERROR: 0:43: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'mediump int' and a right operand of type 'mediump float' (or there is no acceptable conversion)

 ERROR: 0:44: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'mediump float' and a right operand of type 'mediump uint' (or there is no acceptable conversion)

 ERROR: 0:45: '++' :  l-value required "instanceName" (can't modify a uniform)

-ERROR: 0:45: '++' :  wrong operand type no operation '++' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f} (or there is no acceptable conversion)

+ERROR: 0:45: '++' :  wrong operand type no operation '++' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)

 ERROR: 0:46: '++' :  wrong operand type no operation '++' exists that takes an operand of type structure{mediump int i} (or there is no acceptable conversion)

 ERROR: 0:47: '--' :  wrong operand type no operation '--' exists that takes an operand of type 5-element array of mediump float (or there is no acceptable conversion)

 ERROR: 0:48: '++' :  wrong operand type no operation '++' exists that takes an operand of type 3-component vector of bool (or there is no acceptable conversion)

@@ -40,7 +40,7 @@
 ERROR: 0:71: '~' :  wrong operand type no operation '~' exists that takes an operand of type mediump 4X4 matrix of float (or there is no acceptable conversion)

 ERROR: 0:72: '~' :  wrong operand type no operation '~' exists that takes an operand of type mediump 3-component vector of float (or there is no acceptable conversion)

 ERROR: 0:73: '~' :  wrong operand type no operation '~' exists that takes an operand of type 5-element array of mediump float (or there is no acceptable conversion)

-ERROR: 0:74: '~' :  wrong operand type no operation '~' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f} (or there is no acceptable conversion)

+ERROR: 0:74: '~' :  wrong operand type no operation '~' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)

 ERROR: 0:76: '<<' :  wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'mediump int' and a right operand of type 'mediump 3-component vector of int' (or there is no acceptable conversion)

 ERROR: 0:77: '<<' :  wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'mediump uint' and a right operand of type 'mediump 3-component vector of uint' (or there is no acceptable conversion)

 ERROR: 0:78: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'mediump int' and a right operand of type 'mediump float' (or there is no acceptable conversion)

@@ -62,7 +62,7 @@
 0:13  Function Definition: main( (void)

 0:13    Function Parameters: 

 0:?     Sequence

-0:30      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f})

+0:30      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

 0:31      's' (structure{mediump int i})

 0:32      'i' (mediump int)

 0:33      'u' (mediump uint)

@@ -76,7 +76,7 @@
 0:42      'f' (mediump float)

 0:43      'i' (mediump int)

 0:44      'f' (mediump float)

-0:45      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f})

+0:45      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

 0:46      's' (structure{mediump int i})

 0:47      'a' (5-element array of mediump float)

 0:48      'b3' (3-component vector of bool)

@@ -113,7 +113,7 @@
 0:71      'm4' (mediump 4X4 matrix of float)

 0:72      'v3' (mediump 3-component vector of float)

 0:73      'a' (5-element array of mediump float)

-0:74      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f})

+0:74      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

 0:76      'i' (mediump int)

 0:77      'u' (mediump uint)

 0:78      'i' (mediump int)

@@ -231,7 +231,7 @@
 0:134        Constant:

 0:134          2 (const int)

 0:?   Linker Objects

-0:?     'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) mediump float f})

+0:?     'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

 0:?     's' (structure{mediump int i})

 0:?     'a' (5-element array of mediump float)

 

diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out
index 97a7e17..cb28b8e 100644
--- a/Test/baseResults/330.frag.out
+++ b/Test/baseResults/330.frag.out
@@ -44,7 +44,7 @@
 0:?     'outVar' (out 4-component vector of float)

 0:?     'varyingVar' (smooth in 4-component vector of float)

 0:?     '__anon__0' (in block{in 4-component vector of float gl_Color, })

-0:?     'gl_name' (in block{int gl_i})

+0:?     'gl_name' (in block{in int gl_i})

 

 

 Linked fragment stage:

diff --git a/Test/baseResults/400.geom.out b/Test/baseResults/400.geom.out
index 4b23ce0..d2e69a8 100644
--- a/Test/baseResults/400.geom.out
+++ b/Test/baseResults/400.geom.out
@@ -46,9 +46,9 @@
 0:25    Sequence

 0:25      Constant:

 0:25        1 (const int)

-0:26      gl_Position: direct index for structure (4-component vector of float)

-0:26        direct index (block{4-component vector of float gl_Position, float gl_PointSize})

-0:26          'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize})

+0:26      gl_Position: direct index for structure (in 4-component vector of float)

+0:26        direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize})

+0:26          'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize})

 0:26          Constant:

 0:26            1 (const int)

 0:26        Constant:

@@ -72,8 +72,8 @@
 0:51      Constant:

 0:51        3 (const int)

 0:?   Linker Objects

-0:?     'bn' (in 3-element array of block{int a})

-0:?     'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize})

+0:?     'bn' (in 3-element array of block{in int a})

+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize})

 0:?     'color' (in 3-element array of 4-component vector of float)

 0:?     'color2' (in 3-element array of 4-component vector of float)

 0:?     'colorS' (in 3-element array of 4-component vector of float)

@@ -85,8 +85,8 @@
 0:?     'patchIn' (patch in 3-element array of 4-component vector of float)

 0:?     'patchOut' (layout(stream=0 ) patch out 4-component vector of float)

 0:?     'scalar' (in float)

-0:?     'inbls' (in block{int a})

-0:?     'inbla' (in 17-element array of block{int a})

+0:?     'inbls' (in block{in int a})

+0:?     'inbla' (in 17-element array of block{in int a})

 

 

 Linked geometry stage:

diff --git a/Test/baseResults/410.geom.out b/Test/baseResults/410.geom.out
index c6cc54e..e67c8f2 100644
--- a/Test/baseResults/410.geom.out
+++ b/Test/baseResults/410.geom.out
@@ -4,7 +4,7 @@
 ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration 

 ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

 ERROR: 0:32: 'gl_Position' :  no such field in structure 

-ERROR: 0:32: '=' :  cannot convert from 'block{float gl_PointSize}' to '4-component vector of float'

+ERROR: 0:32: '=' :  cannot convert from 'block{in float gl_PointSize}' to '4-component vector of float'

 ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared 

 ERROR: 0:33: 'assign' :  cannot convert from 'const 4-component vector of float' to 'layout(stream=0 ) gl_Position void'

 ERROR: 7 compilation errors.  No code generated.

@@ -28,9 +28,9 @@
 0:30      Sequence

 0:30        move second child to first child (float)

 0:30          'p' (float)

-0:30          gl_PointSize: direct index for structure (float)

-0:30            direct index (block{float gl_PointSize})

-0:30              'gl_in' (in unsized array of block{float gl_PointSize})

+0:30          gl_PointSize: direct index for structure (in float)

+0:30            direct index (block{in float gl_PointSize})

+0:30              'gl_in' (in unsized array of block{in float gl_PointSize})

 0:30              Constant:

 0:30                1 (const int)

 0:30            Constant:

@@ -46,7 +46,7 @@
 0:33        Constant:

 0:33          0 (const uint)

 0:?   Linker Objects

-0:?     'gl_in' (in unsized array of block{float gl_PointSize})

+0:?     'gl_in' (in unsized array of block{in float gl_PointSize})

 0:?     '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float gl_PointSize, })

 

 

diff --git a/Test/baseResults/420.geom.out b/Test/baseResults/420.geom.out
index 1f781e1..e374160 100644
--- a/Test/baseResults/420.geom.out
+++ b/Test/baseResults/420.geom.out
@@ -19,16 +19,16 @@
 0:9    Sequence

 0:9      Constant:

 0:9        1 (const int)

-0:10      gl_Position: direct index for structure (4-component vector of float)

-0:10        direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:10          'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:10      gl_Position: direct index for structure (in 4-component vector of float)

+0:10        direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:10          'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:10          Constant:

 0:10            1 (const int)

 0:10        Constant:

 0:10          0 (const int)

-0:11      gl_Position: direct index for structure (4-component vector of float)

-0:11        indirect index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:11          'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:11      gl_Position: direct index for structure (in 4-component vector of float)

+0:11        indirect index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:11          'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:11          'i' (int)

 0:11        Constant:

 0:11          0 (const int)

@@ -37,9 +37,9 @@
 0:20    Sequence

 0:20      Constant:

 0:20        3 (const int)

-0:21      gl_Position: direct index for structure (4-component vector of float)

-0:21        indirect index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:21          'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:21      gl_Position: direct index for structure (in 4-component vector of float)

+0:21        indirect index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:21          'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:21          'i' (int)

 0:21        Constant:

 0:21          0 (const int)

@@ -115,12 +115,12 @@
 0:44            1 (const int)

 0:?   Linker Objects

 0:?     'i' (int)

-0:?     'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:?     'color3' (in 3-element array of 4-component vector of float)

 0:?     's2D' (uniform sampler2D)

 0:?     'coord' (in 3-element array of 2-component vector of float)

 0:?     'v4' (uniform 4-component vector of float)

-0:?     '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) unsized array of float gl_ClipDistance})

+0:?     '__anon__0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float gl_PointSize, layout(stream=0 ) out unsized array of float gl_ClipDistance})

 

 

 Linked geometry stage:

diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out
index fceb116..8b8e323 100644
--- a/Test/baseResults/420.vert.out
+++ b/Test/baseResults/420.vert.out
@@ -124,16 +124,16 @@
 0:?       4.200000

 0:?     'dx' (const float)

 0:?       4.200000

-0:?     'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(binding=3 column_major shared ) int aoeu})

-0:?     '__anon__0' (layout(binding=7 column_major shared ) uniform block{layout(binding=7 column_major shared ) int aoeu})

-0:?     '__anon__1' (layout(binding=1 ) in block{layout(binding=1 ) int aoeua})

-0:?     '__anon__2' (layout(column_major shared ) uniform block{layout(column_major shared ) int aooeu})

+0:?     'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

+0:?     '__anon__0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

+0:?     '__anon__1' (layout(binding=1 ) in block{in int aoeua})

+0:?     '__anon__2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})

 0:?     'sampb1' (layout(binding=4 ) uniform sampler2D)

 0:?     'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)

 0:?     'sampb3' (layout(binding=80 ) uniform sampler2D)

 0:?     'sampb4' (layout(binding=31 ) uniform sampler2D)

 0:?     'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)

-0:?     '__anon__3' (out block{unsized array of float gl_ClipDistance, })

+0:?     '__anon__3' (out block{out unsized array of float gl_ClipDistance, })

 0:?     'patchIn' (patch in 4-component vector of float)

 0:?     'patchOut' (smooth patch out 4-component vector of float)

 0:?     'gl_VertexID' (gl_VertexId int)

diff --git a/Test/baseResults/420_size_gl_in.geom.out b/Test/baseResults/420_size_gl_in.geom.out
index 569d5cd..aa5a866 100644
--- a/Test/baseResults/420_size_gl_in.geom.out
+++ b/Test/baseResults/420_size_gl_in.geom.out
@@ -14,18 +14,18 @@
 0:13    Sequence

 0:13      Constant:

 0:13        3 (const int)

-0:14      gl_Position: direct index for structure (4-component vector of float)

-0:14        direct index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:14          'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:14      gl_Position: direct index for structure (in 4-component vector of float)

+0:14        direct index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:14          'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:14          Constant:

 0:14            1 (const int)

 0:14        Constant:

 0:14          0 (const int)

 0:15      Constant:

 0:15        3 (const int)

-0:16      gl_Position: direct index for structure (4-component vector of float)

-0:16        indirect index (block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

-0:16          'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:16      gl_Position: direct index for structure (in 4-component vector of float)

+0:16        indirect index (block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

+0:16          'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 0:16          'i' (int)

 0:16        Constant:

 0:16          0 (const int)

@@ -33,7 +33,7 @@
 0:?     'i' (int)

 0:?     'colorun' (in 3-element array of 4-component vector of float)

 0:?     'color3' (in 3-element array of 4-component vector of float)

-0:?     'gl_in' (in 3-element array of block{4-component vector of float gl_Position, float gl_PointSize, unsized array of float gl_ClipDistance})

+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float gl_Position, in float gl_PointSize, in unsized array of float gl_ClipDistance})

 

 

 Linked geometry stage:

diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out
index 18a7b3a..f407711 100644
--- a/Test/baseResults/430.vert.out
+++ b/Test/baseResults/430.vert.out
@@ -22,8 +22,8 @@
 0:16    Sequence

 0:16      move second child to first child (float)

 0:16        direct index (float)

-0:16          gl_ClipDistance: direct index for structure (17-element array of float)

-0:16            '__anon__0' (out block{17-element array of float gl_ClipDistance, })

+0:16          gl_ClipDistance: direct index for structure (out 17-element array of float)

+0:16            '__anon__0' (out block{out 17-element array of float gl_ClipDistance, })

 0:16            Constant:

 0:16              2 (const uint)

 0:16          Constant:

@@ -39,9 +39,9 @@
 0:?   Linker Objects

 0:?     'v4' (layout(location=3 ) 4-component vector of float)

 0:?     'uv4' (layout(location=4 ) uniform 4-component vector of float)

-0:?     'b1' (layout(location=2 ) in block{layout(location=2 ) 4-component vector of float v})

-0:?     'b2' (layout(location=2 ) out block{layout(location=2 ) 4-component vector of float v})

-0:?     '__anon__0' (out block{17-element array of float gl_ClipDistance, })

+0:?     'b1' (layout(location=2 ) in block{in 4-component vector of float v})

+0:?     'b2' (layout(location=2 ) out block{out 4-component vector of float v})

+0:?     '__anon__0' (out block{out 17-element array of float gl_ClipDistance, })

 0:?     'cs' (layout(location=10 ) smooth out 2-element array of structure{7-element array of 3X2 matrix of float m, float f})

 0:?     'cf' (layout(location=54 ) smooth out float)

 0:?     'cg' (layout(location=53 ) smooth out float)

diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out
index 65ab455..8bfdb10 100644
--- a/Test/baseResults/430scope.vert.out
+++ b/Test/baseResults/430scope.vert.out
@@ -63,7 +63,7 @@
 0:47          3.000000

 0:49      move second child to first child (4-component vector of float)

 0:49        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float)

-0:49          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:49          '__anon__0' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:49          Constant:

 0:49            0 (const uint)

 0:49        Construct vec4 (4-component vector of float)

diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out
index 34495c0..66f6ddc 100644
--- a/Test/baseResults/cppSimple.vert.out
+++ b/Test/baseResults/cppSimple.vert.out
@@ -125,7 +125,7 @@
 0:65          0.050000

 0:69      move second child to first child (4-component vector of float)

 0:69        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:69          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:69          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:69          Constant:

 0:69            0 (const uint)

 0:69        Construct vec4 (4-component vector of float)

@@ -165,7 +165,7 @@
 12:20034    Sequence

 12:20034      move second child to first child (4-component vector of float)

 12:20034        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-12:20034          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+12:20034          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 12:20034          Constant:

 12:20034            0 (const uint)

 12:20034        Constant:

diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out
index b1a03e2..cc136af 100644
--- a/Test/baseResults/specExamples.frag.out
+++ b/Test/baseResults/specExamples.frag.out
@@ -286,9 +286,9 @@
 0:?       0.700000

 0:?       0.700000

 0:?       0.200000

-0:?     '__anon__0' (in block{smooth in 4-component vector of float Color1, smooth 4-component vector of float Color2, 2-component vector of float TexCoordA, uniform float Atten})

-0:?     '__anon__1' (in block{4-component vector of float LightPos, 3-component vector of float LightColor})

-0:?     'Materiala' (in block{4-component vector of float Color, 2-component vector of float TexCoord})

+0:?     '__anon__0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})

+0:?     '__anon__1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})

+0:?     'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})

 0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float)

 0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float)

 0:?     'factor' (layout(location=3 ) out 4-component vector of float)

diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out
index 2a4fefb..1d3416d 100644
--- a/Test/baseResults/specExamples.vert.out
+++ b/Test/baseResults/specExamples.vert.out
@@ -32,7 +32,6 @@
 ERROR: 0:97: 'binding' : requires block, or sampler/image, or atomic-counter type 

 ERROR: 0:106: '' : vertex input cannot be further qualified 

 ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor

-ERROR: 0:107: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor

 ERROR: 0:112: 'ColorIvn' : identifier not previously declared 

 ERROR: 0:132: 'shared' : not supported in this stage: vertex

 ERROR: 0:134: '' : function does not return a value: funcA

@@ -43,7 +42,7 @@
 ERROR: 0:192: 'constructor' : constructing from a non-dereferenced array 

 ERROR: 0:193: 'constructor' : constructing from a non-dereferenced array 

 ERROR: 0:194: 'constructor' : constructing from a non-dereferenced array 

-ERROR: 42 compilation errors.  No code generated.

+ERROR: 41 compilation errors.  No code generated.

 

 

 ERROR: node is still EOpNull!

@@ -278,27 +277,27 @@
 0:194        Constant:

 0:194          0.000000

 0:?   Linker Objects

-0:?     'Coords' (out block{4-component vector of float Position, 2-component vector of float Texture})

-0:?     '__anon__0' (out block{4-component vector of float Color})

-0:?     'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) unsized array of 4-component vector of float a, layout(column_major shared ) float Deformation})

+0:?     'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})

+0:?     '__anon__0' (out block{out 4-component vector of float Color})

+0:?     'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform unsized array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})

 0:?     'normal' (layout(location=3 ) in 4-component vector of float)

 0:?     'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)

 0:?     's' (layout(location=3 ) structure{3-component vector of float a1, 2X2 matrix of float b, 2-element array of 4-component vector of float c})

 0:?     'var1' (smooth out 4-component vector of float)

-0:?     '__anon__1' (out block{4-component vector of float var2, 2-component vector of float var3, 3-component vector of float var4})

+0:?     '__anon__1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})

 0:?     'var5' (smooth out 4-component vector of float)

-0:?     '__anon__2' (out block{4-component vector of float var6})

+0:?     '__anon__2' (out block{out 4-component vector of float var6})

 0:?     'var7' (smooth out 4-component vector of float)

-0:?     '__anon__3' (layout(row_major std140 ) uniform block{layout(row_major std140 ) 4X4 matrix of float M1, layout(column_major std140 ) 4X4 matrix of float M2, layout(row_major std140 ) 3X3 matrix of float N1})

-0:?     '__anon__4' (layout(column_major shared ) uniform block{layout(column_major shared ) 4X4 matrix of float M13, layout(row_major shared ) 4X4 matrix of float m14, layout(column_major shared ) 3X3 matrix of float N12})

+0:?     '__anon__3' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4X4 matrix of float M1, layout(column_major std140 ) uniform 4X4 matrix of float M2, layout(row_major std140 ) uniform 3X3 matrix of float N1})

+0:?     '__anon__4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})

 0:?     's17' (layout(binding=3 ) uniform sampler2D)

 0:?     'a2' (layout(binding=2 ) uniform int)

 0:?     'bar' (layout(binding=2 ) uniform int)

 0:?     'b2' (layout(binding=2 ) uniform int)

 0:?     'c2' (layout(binding=3 ) uniform int)

 0:?     'd2' (layout(binding=2 ) uniform int)

-0:?     '__anon__5' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, flat 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

-0:?     '__anon__5' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, flat 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:?     '__anon__5' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, flat out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

+0:?     '__anon__5' (out block{invariant gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, flat out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:?     'ColorInv' (smooth out 3-component vector of float)

 0:?     'Color4' (invariant centroid smooth out 3-component vector of float)

 0:?     'position' (smooth out 4-component vector of float)

@@ -308,8 +307,8 @@
 0:?     'c' (in 4-component vector of float)

 0:?     'd' (in 4-component vector of float)

 0:?     'v' (smooth out 4-component vector of float)

-0:?     '__anon__6' (layout(row_major shared ) coherent uniform block{layout(row_major shared ) readonly 4-component vector of float member1, layout(row_major shared ) 4-component vector of float member2})

-0:?     '__anon__7' (layout(row_major shared ) uniform block{layout(row_major shared ) coherent readonly 4-component vector of float member1A, layout(row_major shared ) coherent 4-component vector of float member2A})

+0:?     '__anon__6' (layout(row_major shared ) coherent uniform block{layout(row_major shared ) readonly uniform 4-component vector of float member1, layout(row_major shared ) uniform 4-component vector of float member2})

+0:?     '__anon__7' (layout(row_major shared ) uniform block{layout(row_major shared ) coherent readonly uniform 4-component vector of float member1A, layout(row_major shared ) coherent uniform 4-component vector of float member2A})

 0:?     'shv' (shared 4-component vector of float)

 0:?     'img1' (uniform image2D)

 0:?     'img2' (coherent uniform image2D)

diff --git a/Test/baseResults/versionsClean.vert.out b/Test/baseResults/versionsClean.vert.out
index bd1e8a0..1f7b5d5 100644
--- a/Test/baseResults/versionsClean.vert.out
+++ b/Test/baseResults/versionsClean.vert.out
@@ -7,7 +7,7 @@
 0:42    Sequence

 0:42      move second child to first child (4-component vector of float)

 0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:42          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:42          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:42          Constant:

 0:42            0 (const uint)

 0:42        Construct vec4 (4-component vector of float)

diff --git a/Test/baseResults/versionsErrors.vert.out b/Test/baseResults/versionsErrors.vert.out
index d575701..77d062f 100644
--- a/Test/baseResults/versionsErrors.vert.out
+++ b/Test/baseResults/versionsErrors.vert.out
@@ -12,7 +12,7 @@
 0:44    Sequence

 0:44      move second child to first child (4-component vector of float)

 0:44        gl_Position: direct index for structure (gl_Position 4-component vector of float)

-0:44          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, 4-component vector of float gl_FrontColor, 4-component vector of float gl_BackColor, 4-component vector of float gl_FrontSecondaryColor, 4-component vector of float gl_BackSecondaryColor, unsized array of 4-component vector of float gl_TexCoord, float gl_FogFragCoord})

+0:44          '__anon__1' (out block{gl_Position 4-component vector of float gl_Position, gl_PointSize float gl_PointSize, out unsized array of float gl_ClipDistance, gl_ClipVertex 4-component vector of float gl_ClipVertex, out 4-component vector of float gl_FrontColor, out 4-component vector of float gl_BackColor, out 4-component vector of float gl_FrontSecondaryColor, out 4-component vector of float gl_BackSecondaryColor, out unsized array of 4-component vector of float gl_TexCoord, out float gl_FogFragCoord})

 0:44          Constant:

 0:44            0 (const uint)

 0:44        Construct vec4 (4-component vector of float)