diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out
index 323e0895fb908a7687c7061f857ee4a72a096c9c..8e50b81568eb89a40566dbfd594ba89a0939fb18 100644
--- a/Test/baseResults/150.tesc.out
+++ b/Test/baseResults/150.tesc.out
@@ -15,9 +15,9 @@ vertices = 4
 0:20      Sequence
 0:20        move second child to first child (temp 4-component vector of float)
 0:20          'p' (temp 4-component vector of float)
-0:20          gl_Position: direct index for structure (in 4-component vector of float)
-0:20            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:20          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:20            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:20              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:20              Constant:
 0:20                1 (const int)
 0:20            Constant:
@@ -25,9 +25,9 @@ vertices = 4
 0:21      Sequence
 0:21        move second child to first child (temp float)
 0:21          'ps' (temp float)
-0:21          gl_PointSize: direct index for structure (in float)
-0:21            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:21          gl_PointSize: direct index for structure (in float PointSize)
+0:21            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:21              Constant:
 0:21                1 (const int)
 0:21            Constant:
@@ -35,10 +35,10 @@ vertices = 4
 0:22      Sequence
 0:22        move second child to first child (temp float)
 0:22          'cd' (temp float)
-0:22          direct index (temp float)
-0:22            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:22              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:22          direct index (temp float ClipDistance)
+0:22            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:22              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:22                Constant:
 0:22                  1 (const int)
 0:22              Constant:
@@ -131,9 +131,9 @@ ERROR: node is still EOpNull!
 0:22      Sequence
 0:22        move second child to first child (temp 4-component vector of float)
 0:22          'p' (temp 4-component vector of float)
-0:22          gl_Position: direct index for structure (in 4-component vector of float)
-0:22            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:22          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:22            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:22              Constant:
 0:22                1 (const int)
 0:22            Constant:
@@ -141,9 +141,9 @@ ERROR: node is still EOpNull!
 0:23      Sequence
 0:23        move second child to first child (temp float)
 0:23          'ps' (temp float)
-0:23          gl_PointSize: direct index for structure (in float)
-0:23            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:23          gl_PointSize: direct index for structure (in float PointSize)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:23              Constant:
 0:23                1 (const int)
 0:23            Constant:
@@ -151,10 +151,10 @@ ERROR: node is still EOpNull!
 0:24      Sequence
 0:24        move second child to first child (temp float)
 0:24          'cd' (temp float)
-0:24          direct index (temp float)
-0:24            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:24              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:24          direct index (temp float ClipDistance)
+0:24            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:24              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:24                Constant:
 0:24                  1 (const int)
 0:24              Constant:
@@ -251,9 +251,9 @@ ERROR: node is still EOpNull!
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'p' (temp 4-component vector of float)
-0:23          gl_Position: direct index for structure (in 4-component vector of float)
-0:23            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:23              Constant:
 0:23                1 (const int)
 0:23            Constant:
@@ -261,9 +261,9 @@ ERROR: node is still EOpNull!
 0:24      Sequence
 0:24        move second child to first child (temp float)
 0:24          'ps' (temp float)
-0:24          gl_PointSize: direct index for structure (in float)
-0:24            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:24              Constant:
 0:24                1 (const int)
 0:24            Constant:
@@ -271,10 +271,10 @@ ERROR: node is still EOpNull!
 0:25      Sequence
 0:25        move second child to first child (temp float)
 0:25          'cd' (temp float)
-0:25          direct index (temp float)
-0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:25              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:25                Constant:
 0:25                  1 (const int)
 0:25              Constant:
@@ -484,9 +484,9 @@ ERROR: node is still EOpNull!
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of float)
 0:32          'p' (temp 4-component vector of float)
-0:32          gl_Position: direct index for structure (in 4-component vector of float)
-0:32            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:32              Constant:
 0:32                1 (const int)
 0:32            Constant:
@@ -494,9 +494,9 @@ ERROR: node is still EOpNull!
 0:33      Sequence
 0:33        move second child to first child (temp float)
 0:33          'ps' (temp float)
-0:33          gl_PointSize: direct index for structure (in float)
-0:33            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:33              Constant:
 0:33                1 (const int)
 0:33            Constant:
@@ -504,10 +504,10 @@ ERROR: node is still EOpNull!
 0:34      Sequence
 0:34        move second child to first child (temp float)
 0:34          'cd' (temp float)
-0:34          direct index (temp float)
-0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:34              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:34                Constant:
 0:34                  1 (const int)
 0:34              Constant:
@@ -569,7 +569,7 @@ ERROR: node is still EOpNull!
 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{in implicitly-sized array of float gl_ClipDistance})
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance 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)
@@ -622,9 +622,9 @@ ERROR: node is still EOpNull!
 0:17      Sequence
 0:17        move second child to first child (temp 4-component vector of float)
 0:17          'p' (temp 4-component vector of float)
-0:17          gl_Position: direct index for structure (in 4-component vector of float)
-0:17            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:17              Constant:
 0:17                1 (const int)
 0:17            Constant:
@@ -632,9 +632,9 @@ ERROR: node is still EOpNull!
 0:18      Sequence
 0:18        move second child to first child (temp float)
 0:18          'ps' (temp float)
-0:18          gl_PointSize: direct index for structure (in float)
-0:18            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:18              Constant:
 0:18                1 (const int)
 0:18            Constant:
@@ -642,10 +642,10 @@ ERROR: node is still EOpNull!
 0:19      Sequence
 0:19        move second child to first child (temp float)
 0:19          'cd' (temp float)
-0:19          direct index (temp float)
-0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:19              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:19                Constant:
 0:19                  1 (const int)
 0:19              Constant:
@@ -938,9 +938,9 @@ vertices = 4
 0:20      Sequence
 0:20        move second child to first child (temp 4-component vector of float)
 0:20          'p' (temp 4-component vector of float)
-0:20          gl_Position: direct index for structure (in 4-component vector of float)
-0:20            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:20          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:20            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:20              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:20              Constant:
 0:20                1 (const int)
 0:20            Constant:
@@ -948,9 +948,9 @@ vertices = 4
 0:21      Sequence
 0:21        move second child to first child (temp float)
 0:21          'ps' (temp float)
-0:21          gl_PointSize: direct index for structure (in float)
-0:21            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:21          gl_PointSize: direct index for structure (in float PointSize)
+0:21            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:21              Constant:
 0:21                1 (const int)
 0:21            Constant:
@@ -958,10 +958,10 @@ vertices = 4
 0:22      Sequence
 0:22        move second child to first child (temp float)
 0:22          'cd' (temp float)
-0:22          direct index (temp float)
-0:22            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:22              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:22          direct index (temp float ClipDistance)
+0:22            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:22              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:22                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:22                Constant:
 0:22                  1 (const int)
 0:22              Constant:
@@ -1036,9 +1036,9 @@ vertices = 4
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'p' (temp 4-component vector of float)
-0:23          gl_Position: direct index for structure (in 4-component vector of float)
-0:23            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:23              Constant:
 0:23                1 (const int)
 0:23            Constant:
@@ -1046,9 +1046,9 @@ vertices = 4
 0:24      Sequence
 0:24        move second child to first child (temp float)
 0:24          'ps' (temp float)
-0:24          gl_PointSize: direct index for structure (in float)
-0:24            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:24              Constant:
 0:24                1 (const int)
 0:24            Constant:
@@ -1056,10 +1056,10 @@ vertices = 4
 0:25      Sequence
 0:25        move second child to first child (temp float)
 0:25          'cd' (temp float)
-0:25          direct index (temp float)
-0:25            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:25              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:25                Constant:
 0:25                  1 (const int)
 0:25              Constant:
@@ -1204,9 +1204,9 @@ vertices = 4
 0:17      Sequence
 0:17        move second child to first child (temp 4-component vector of float)
 0:17          'p' (temp 4-component vector of float)
-0:17          gl_Position: direct index for structure (in 4-component vector of float)
-0:17            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:17              Constant:
 0:17                1 (const int)
 0:17            Constant:
@@ -1214,9 +1214,9 @@ vertices = 4
 0:18      Sequence
 0:18        move second child to first child (temp float)
 0:18          'ps' (temp float)
-0:18          gl_PointSize: direct index for structure (in float)
-0:18            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:18              Constant:
 0:18                1 (const int)
 0:18            Constant:
@@ -1224,10 +1224,10 @@ vertices = 4
 0:19      Sequence
 0:19        move second child to first child (temp float)
 0:19          'cd' (temp float)
-0:19          direct index (temp float)
-0:19            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:19              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:19                Constant:
 0:19                  1 (const int)
 0:19              Constant:
@@ -1338,9 +1338,9 @@ ERROR: node is still EOpNull!
 0:22      Sequence
 0:22        move second child to first child (temp 4-component vector of float)
 0:22          'p' (temp 4-component vector of float)
-0:22          gl_Position: direct index for structure (in 4-component vector of float)
-0:22            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:22          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:22            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:22              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:22              Constant:
 0:22                1 (const int)
 0:22            Constant:
@@ -1348,9 +1348,9 @@ ERROR: node is still EOpNull!
 0:23      Sequence
 0:23        move second child to first child (temp float)
 0:23          'ps' (temp float)
-0:23          gl_PointSize: direct index for structure (in float)
-0:23            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:23          gl_PointSize: direct index for structure (in float PointSize)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:23              Constant:
 0:23                1 (const int)
 0:23            Constant:
@@ -1358,10 +1358,10 @@ ERROR: node is still EOpNull!
 0:24      Sequence
 0:24        move second child to first child (temp float)
 0:24          'cd' (temp float)
-0:24          direct index (temp float)
-0:24            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:24              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:24          direct index (temp float ClipDistance)
+0:24            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:24              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:24                Constant:
 0:24                  1 (const int)
 0:24              Constant:
@@ -1428,9 +1428,9 @@ ERROR: node is still EOpNull!
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of float)
 0:32          'p' (temp 4-component vector of float)
-0:32          gl_Position: direct index for structure (in 4-component vector of float)
-0:32            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:32              Constant:
 0:32                1 (const int)
 0:32            Constant:
@@ -1438,9 +1438,9 @@ ERROR: node is still EOpNull!
 0:33      Sequence
 0:33        move second child to first child (temp float)
 0:33          'ps' (temp float)
-0:33          gl_PointSize: direct index for structure (in float)
-0:33            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:33              Constant:
 0:33                1 (const int)
 0:33            Constant:
@@ -1448,10 +1448,10 @@ ERROR: node is still EOpNull!
 0:34      Sequence
 0:34        move second child to first child (temp float)
 0:34          'cd' (temp float)
-0:34          direct index (temp float)
-0:34            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:34              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:34                Constant:
 0:34                  1 (const int)
 0:34              Constant:
@@ -1587,7 +1587,7 @@ ERROR: node is still EOpNull!
 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{in 1-element array of float gl_ClipDistance})
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance 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)
diff --git a/Test/baseResults/310.tesc.out b/Test/baseResults/310.tesc.out
index 158fcb77d944e3b2db636dc60942b5082d6ff65a..9bf8ab521b35e94276c9413b881f1f0c42c729d9 100644
--- a/Test/baseResults/310.tesc.out
+++ b/Test/baseResults/310.tesc.out
@@ -65,9 +65,9 @@ ERROR: node is still EOpNull!
 0:25      Sequence
 0:25        move second child to first child (temp highp 4-component vector of float)
 0:25          'p' (temp highp 4-component vector of float)
-0:25          gl_Position: direct index for structure (in highp 4-component vector of float)
-0:25            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:25          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:25            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:25              Constant:
 0:25                1 (const int)
 0:25            Constant:
@@ -75,9 +75,9 @@ ERROR: node is still EOpNull!
 0:26      Sequence
 0:26        move second child to first child (temp highp float)
 0:26          'ps' (temp highp float)
-0:26          gl_PointSize: direct index for structure (in highp float)
-0:26            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:26          gl_PointSize: direct index for structure (in highp float PointSize)
+0:26            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:26              Constant:
 0:26                1 (const int)
 0:26            Constant:
@@ -206,9 +206,9 @@ ERROR: node is still EOpNull!
 0:114      Sequence
 0:114        move second child to first child (temp highp float)
 0:114          'ps' (temp highp float)
-0:114          gl_PointSize: direct index for structure (in highp float)
-0:114            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:114          gl_PointSize: direct index for structure (in highp float PointSize)
+0:114            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:114              Constant:
 0:114                1 (const int)
 0:114            Constant:
@@ -327,9 +327,9 @@ ERROR: node is still EOpNull!
 0:25      Sequence
 0:25        move second child to first child (temp highp 4-component vector of float)
 0:25          'p' (temp highp 4-component vector of float)
-0:25          gl_Position: direct index for structure (in highp 4-component vector of float)
-0:25            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:25          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:25            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:25              Constant:
 0:25                1 (const int)
 0:25            Constant:
@@ -337,9 +337,9 @@ ERROR: node is still EOpNull!
 0:26      Sequence
 0:26        move second child to first child (temp highp float)
 0:26          'ps' (temp highp float)
-0:26          gl_PointSize: direct index for structure (in highp float)
-0:26            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:26          gl_PointSize: direct index for structure (in highp float PointSize)
+0:26            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:26              Constant:
 0:26                1 (const int)
 0:26            Constant:
@@ -468,9 +468,9 @@ ERROR: node is still EOpNull!
 0:114      Sequence
 0:114        move second child to first child (temp highp float)
 0:114          'ps' (temp highp float)
-0:114          gl_PointSize: direct index for structure (in highp float)
-0:114            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:114          gl_PointSize: direct index for structure (in highp float PointSize)
+0:114            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:114              Constant:
 0:114                1 (const int)
 0:114            Constant:
diff --git a/Test/baseResults/310.tese.out b/Test/baseResults/310.tese.out
index b1ab64a3ec98bf7b496e15024decb2a95af273d1..877e082df5e0916599e699224a578f1f3636549a 100644
--- a/Test/baseResults/310.tese.out
+++ b/Test/baseResults/310.tese.out
@@ -46,7 +46,7 @@ ERROR: 0:103: 'location' : overlapping use of location 24
 ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 
 ERROR: 0:113: 'sample' : Reserved word. 
 ERROR: 0:119: 'gl_PointSize' : no such field in structure 
-ERROR: 0:119: '=' :  cannot convert from 'temp block{in highp 4-component vector of float gl_Position}' to 'temp highp float'
+ERROR: 0:119: '=' :  cannot convert from 'temp block{in highp 4-component vector of float Position gl_Position}' to 'temp highp float'
 ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier 
 ERROR: 44 compilation errors.  No code generated.
 
@@ -77,9 +77,9 @@ ERROR: node is still EOpNull!
 0:36      Sequence
 0:36        move second child to first child (temp highp 4-component vector of float)
 0:36          'p' (temp highp 4-component vector of float)
-0:36          gl_Position: direct index for structure (in highp 4-component vector of float)
-0:36            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:36          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:36            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:36              Constant:
 0:36                1 (const int)
 0:36            Constant:
@@ -87,9 +87,9 @@ ERROR: node is still EOpNull!
 0:37      Sequence
 0:37        move second child to first child (temp highp float)
 0:37          'ps' (temp highp float)
-0:37          gl_PointSize: direct index for structure (in highp float)
-0:37            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:37          gl_PointSize: direct index for structure (in highp float PointSize)
+0:37            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:37              Constant:
 0:37                1 (const int)
 0:37            Constant:
@@ -161,7 +161,7 @@ ERROR: node is still EOpNull!
 0:?     'badp2' (flat patch in highp 4-component vector of float)
 0:?     'badp3' (noperspective patch in highp 4-component vector of float)
 0:?     'badp4' (patch sample in highp 3-component vector of float)
-0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position})
+0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})
 0:?     'ina' (in highp 2-component vector of float)
 0:?     'inb' (in 32-element array of highp 2-component vector of float)
 0:?     'inc' (in 32-element array of highp 2-component vector of float)
@@ -210,9 +210,9 @@ ERROR: node is still EOpNull!
 0:36      Sequence
 0:36        move second child to first child (temp highp 4-component vector of float)
 0:36          'p' (temp highp 4-component vector of float)
-0:36          gl_Position: direct index for structure (in highp 4-component vector of float)
-0:36            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:36          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:36            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:36              Constant:
 0:36                1 (const int)
 0:36            Constant:
@@ -220,9 +220,9 @@ ERROR: node is still EOpNull!
 0:37      Sequence
 0:37        move second child to first child (temp highp float)
 0:37          'ps' (temp highp float)
-0:37          gl_PointSize: direct index for structure (in highp float)
-0:37            direct index (temp block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
-0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position, in highp float gl_PointSize})
+0:37          gl_PointSize: direct index for structure (in highp float PointSize)
+0:37            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
 0:37              Constant:
 0:37                1 (const int)
 0:37            Constant:
@@ -294,7 +294,7 @@ ERROR: node is still EOpNull!
 0:?     'badp2' (flat patch in highp 4-component vector of float)
 0:?     'badp3' (noperspective patch in highp 4-component vector of float)
 0:?     'badp4' (patch sample in highp 3-component vector of float)
-0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float gl_Position})
+0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})
 0:?     'ina' (in highp 2-component vector of float)
 0:?     'inb' (in 32-element array of highp 2-component vector of float)
 0:?     'inc' (in 32-element array of highp 2-component vector of float)
diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out
index 93f8cd4e58dd8580d26f7f6e4ab609f707bdc07f..7430cffaaac032e41b4ed1c2295ed90adbbbbb47 100644
--- a/Test/baseResults/400.tesc.out
+++ b/Test/baseResults/400.tesc.out
@@ -37,9 +37,9 @@ ERROR: node is still EOpNull!
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'p' (temp 4-component vector of float)
-0:23          gl_Position: direct index for structure (in 4-component vector of float)
-0:23            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:23              Constant:
 0:23                1 (const int)
 0:23            Constant:
@@ -47,9 +47,9 @@ ERROR: node is still EOpNull!
 0:24      Sequence
 0:24        move second child to first child (temp float)
 0:24          'ps' (temp float)
-0:24          gl_PointSize: direct index for structure (in float)
-0:24            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:24              Constant:
 0:24                1 (const int)
 0:24            Constant:
@@ -57,10 +57,10 @@ ERROR: node is still EOpNull!
 0:25      Sequence
 0:25        move second child to first child (temp float)
 0:25          'cd' (temp float)
-0:25          direct index (temp float)
-0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:25              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:25                Constant:
 0:25                  1 (const int)
 0:25              Constant:
@@ -235,9 +235,9 @@ ERROR: node is still EOpNull!
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'p' (temp 4-component vector of float)
-0:23          gl_Position: direct index for structure (in 4-component vector of float)
-0:23            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:23              Constant:
 0:23                1 (const int)
 0:23            Constant:
@@ -245,9 +245,9 @@ ERROR: node is still EOpNull!
 0:24      Sequence
 0:24        move second child to first child (temp float)
 0:24          'ps' (temp float)
-0:24          gl_PointSize: direct index for structure (in float)
-0:24            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:24              Constant:
 0:24                1 (const int)
 0:24            Constant:
@@ -255,10 +255,10 @@ ERROR: node is still EOpNull!
 0:25      Sequence
 0:25        move second child to first child (temp float)
 0:25          'cd' (temp float)
-0:25          direct index (temp float)
-0:25            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:25              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:25                Constant:
 0:25                  1 (const int)
 0:25              Constant:
diff --git a/Test/baseResults/400.tese.out b/Test/baseResults/400.tese.out
index d95f43140f046743c1946b9efa9ac3c41e478afd..53f4243157767781c51c7cf5dd0c7b03f7fdd9d5 100644
--- a/Test/baseResults/400.tese.out
+++ b/Test/baseResults/400.tese.out
@@ -53,9 +53,9 @@ ERROR: node is still EOpNull!
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of float)
 0:32          'p' (temp 4-component vector of float)
-0:32          gl_Position: direct index for structure (in 4-component vector of float)
-0:32            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:32              Constant:
 0:32                1 (const int)
 0:32            Constant:
@@ -63,9 +63,9 @@ ERROR: node is still EOpNull!
 0:33      Sequence
 0:33        move second child to first child (temp float)
 0:33          'ps' (temp float)
-0:33          gl_PointSize: direct index for structure (in float)
-0:33            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:33              Constant:
 0:33                1 (const int)
 0:33            Constant:
@@ -73,10 +73,10 @@ ERROR: node is still EOpNull!
 0:34      Sequence
 0:34        move second child to first child (temp float)
 0:34          'cd' (temp float)
-0:34          direct index (temp float)
-0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:34              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:34                Constant:
 0:34                  1 (const int)
 0:34              Constant:
@@ -138,7 +138,7 @@ ERROR: node is still EOpNull!
 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{in implicitly-sized array of float gl_ClipDistance})
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance 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)
@@ -178,9 +178,9 @@ ERROR: node is still EOpNull!
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of float)
 0:32          'p' (temp 4-component vector of float)
-0:32          gl_Position: direct index for structure (in 4-component vector of float)
-0:32            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:32              Constant:
 0:32                1 (const int)
 0:32            Constant:
@@ -188,9 +188,9 @@ ERROR: node is still EOpNull!
 0:33      Sequence
 0:33        move second child to first child (temp float)
 0:33          'ps' (temp float)
-0:33          gl_PointSize: direct index for structure (in float)
-0:33            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:33              Constant:
 0:33                1 (const int)
 0:33            Constant:
@@ -198,10 +198,10 @@ ERROR: node is still EOpNull!
 0:34      Sequence
 0:34        move second child to first child (temp float)
 0:34          'cd' (temp float)
-0:34          direct index (temp float)
-0:34            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:34              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:34                Constant:
 0:34                  1 (const int)
 0:34              Constant:
@@ -263,7 +263,7 @@ ERROR: node is still EOpNull!
 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{in 1-element array of float gl_ClipDistance})
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance 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)
diff --git a/Test/baseResults/420.tesc.out b/Test/baseResults/420.tesc.out
index b53f3fdb4182eb45461b6f5fa71bcac9411c9aef..999c1c6f60721278f6de6beccd44f6970d7b7a80 100644
--- a/Test/baseResults/420.tesc.out
+++ b/Test/baseResults/420.tesc.out
@@ -19,9 +19,9 @@ ERROR: node is still EOpNull!
 0:17      Sequence
 0:17        move second child to first child (temp 4-component vector of float)
 0:17          'p' (temp 4-component vector of float)
-0:17          gl_Position: direct index for structure (in 4-component vector of float)
-0:17            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:17              Constant:
 0:17                1 (const int)
 0:17            Constant:
@@ -29,9 +29,9 @@ ERROR: node is still EOpNull!
 0:18      Sequence
 0:18        move second child to first child (temp float)
 0:18          'ps' (temp float)
-0:18          gl_PointSize: direct index for structure (in float)
-0:18            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:18              Constant:
 0:18                1 (const int)
 0:18            Constant:
@@ -39,10 +39,10 @@ ERROR: node is still EOpNull!
 0:19      Sequence
 0:19        move second child to first child (temp float)
 0:19          'cd' (temp float)
-0:19          direct index (temp float)
-0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float)
-0:19              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in implicitly-sized 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 implicitly-sized array of float gl_ClipDistance})
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
 0:19                Constant:
 0:19                  1 (const int)
 0:19              Constant:
@@ -132,9 +132,9 @@ ERROR: node is still EOpNull!
 0:17      Sequence
 0:17        move second child to first child (temp 4-component vector of float)
 0:17          'p' (temp 4-component vector of float)
-0:17          gl_Position: direct index for structure (in 4-component vector of float)
-0:17            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:17              Constant:
 0:17                1 (const int)
 0:17            Constant:
@@ -142,9 +142,9 @@ ERROR: node is still EOpNull!
 0:18      Sequence
 0:18        move second child to first child (temp float)
 0:18          'ps' (temp float)
-0:18          gl_PointSize: direct index for structure (in float)
-0:18            direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:18              Constant:
 0:18                1 (const int)
 0:18            Constant:
@@ -152,10 +152,10 @@ ERROR: node is still EOpNull!
 0:19      Sequence
 0:19        move second child to first child (temp float)
 0:19          'cd' (temp float)
-0:19          direct index (temp float)
-0:19            gl_ClipDistance: direct index for structure (in 1-element array of float)
-0:19              direct index (temp block{in 4-component vector of float gl_Position, in float gl_PointSize, in 1-element 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 1-element array of float gl_ClipDistance})
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
 0:19                Constant:
 0:19                  1 (const int)
 0:19              Constant:
diff --git a/Test/baseResults/450.tesc.out b/Test/baseResults/450.tesc.out
index 374cf932c88d252aa463d4146a3fd4e4453f1c2d..6eaf6f9d5bfb0c8c1df88a6fd5be65afe59acc8d 100644
--- a/Test/baseResults/450.tesc.out
+++ b/Test/baseResults/450.tesc.out
@@ -18,10 +18,10 @@ vertices = 0
 0:13              0 (const int)
 0:13          Constant:
 0:13            2 (const int)
-0:13        direct index (temp float)
-0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float)
-0:13            direct index (temp block{in implicitly-sized array of float gl_CullDistance})
-0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
+0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
 0:13              Constant:
 0:13                1 (const int)
 0:13            Constant:
@@ -29,7 +29,7 @@ vertices = 0
 0:13          Constant:
 0:13            2 (const int)
 0:?   Linker Objects
-0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
 0:?     'gl_out' (out implicitly-sized array of block{out implicitly-sized array of float CullDistance gl_CullDistance})
 
 
@@ -54,10 +54,10 @@ vertices = 0
 0:13              0 (const int)
 0:13          Constant:
 0:13            2 (const int)
-0:13        direct index (temp float)
-0:13          gl_CullDistance: direct index for structure (in 1-element array of float)
-0:13            direct index (temp block{in 1-element array of float gl_CullDistance})
-0:13              'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
+0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
 0:13              Constant:
 0:13                1 (const int)
 0:13            Constant:
@@ -65,6 +65,6 @@ vertices = 0
 0:13          Constant:
 0:13            2 (const int)
 0:?   Linker Objects
-0:?     'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
 0:?     'gl_out' (out 1-element array of block{out 1-element array of float CullDistance gl_CullDistance})
 
diff --git a/Test/baseResults/450.tese.out b/Test/baseResults/450.tese.out
index 53ef010ab9298450b99cbaa40792c019ecfc98ca..04f58b3385255da888250764a9db85281a273aef 100644
--- a/Test/baseResults/450.tese.out
+++ b/Test/baseResults/450.tese.out
@@ -17,10 +17,10 @@ triangle order = none
 0:13              3 (const uint)
 0:13          Constant:
 0:13            2 (const int)
-0:13        direct index (temp float)
-0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float)
-0:13            direct index (temp block{in implicitly-sized array of float gl_CullDistance})
-0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
+0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
 0:13              Constant:
 0:13                1 (const int)
 0:13            Constant:
@@ -28,7 +28,7 @@ triangle order = none
 0:13          Constant:
 0:13            2 (const int)
 0:?   Linker Objects
-0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
 0:?     'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
 
 
@@ -52,10 +52,10 @@ triangle order = ccw
 0:13              3 (const uint)
 0:13          Constant:
 0:13            2 (const int)
-0:13        direct index (temp float)
-0:13          gl_CullDistance: direct index for structure (in 1-element array of float)
-0:13            direct index (temp block{in 1-element array of float gl_CullDistance})
-0:13              'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
+0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
 0:13              Constant:
 0:13                1 (const int)
 0:13            Constant:
@@ -63,6 +63,6 @@ triangle order = ccw
 0:13          Constant:
 0:13            2 (const int)
 0:?   Linker Objects
-0:?     'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
 0:?     'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
 
diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index 076bf6f163fcf74b14a2eaf3d29155aedd226502..96ca098a892b71812f5007fb0c7a2d69ce87c209 100755
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -47,6 +47,9 @@ Linked tessellation control stage:
                               Name 85  "ivlb"
                               Name 88  "ovla"
                               Name 89  "ovlb"
+                              MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance
                               Decorate 19(gl_PerVertex) Block
                               Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices
                               Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId
diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out
index 1199acd76b6f1fc572de148b60cd19f1660416be..ea24998d83c48aed5f56e1d57ee4c0b919f4da61 100755
--- a/Test/baseResults/spv.400.tese.out
+++ b/Test/baseResults/spv.400.tese.out
@@ -56,6 +56,9 @@ Linked tessellation evaluation stage:
                               Name 93  "ivla"
                               Name 94  "ivlb"
                               Name 97  "ovla"
+                              MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance
                               Decorate 17(gl_PerVertex) Block
                               Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices
                               Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index a1bfe13273850889818d6392c0254caf2a2588d9..4ce613169a2c8fdc827b7ddfe0fd4dcf41f61970 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "3.0.786"
+#define GLSLANG_REVISION "3.0.787"
 #define GLSLANG_DATE "13-Oct-2015"
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index e1676200deeeda49141955979db3a814ec284169..f72dd277f6250b687504426e2fb76d5071aa32fe 100644
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -3463,6 +3463,27 @@ void IdentifyBuiltIns(int version, EProfile profile, EShLanguage language, TSymb
         }
         break;
 
+    case EShLangTessControl:
+    case EShLangTessEvaluation:
+        // Because of the context-dependent array size (gl_MaxPatchVertices),
+        // these variables were added later than the others and need to be mapped now.
+
+        // standard members
+        BuiltInVariable("gl_in", "gl_Position",     EbvPosition,     symbolTable);
+        BuiltInVariable("gl_in", "gl_PointSize",    EbvPointSize,    symbolTable);
+        BuiltInVariable("gl_in", "gl_ClipDistance", EbvClipDistance, symbolTable);
+        BuiltInVariable("gl_in", "gl_CullDistance", EbvCullDistance, symbolTable);
+
+        // compatibility members
+        BuiltInVariable("gl_in", "gl_ClipVertex",          EbvClipVertex,          symbolTable);
+        BuiltInVariable("gl_in", "gl_FrontColor",          EbvFrontColor,          symbolTable);
+        BuiltInVariable("gl_in", "gl_BackColor",           EbvBackColor,           symbolTable);
+        BuiltInVariable("gl_in", "gl_FrontSecondaryColor", EbvFrontSecondaryColor, symbolTable);
+        BuiltInVariable("gl_in", "gl_BackSecondaryColor",  EbvBackSecondaryColor,  symbolTable);
+        BuiltInVariable("gl_in", "gl_TexCoord",            EbvTexCoord,            symbolTable);
+        BuiltInVariable("gl_in", "gl_FogFragCoord",        EbvFogFragCoord,        symbolTable);
+        break;
+
     default:
         break;
     }