420.geom
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:9: 'length' :  array must first be sized by a redeclaration or layout qualifier
ERROR: 0:11: '[' :  array must be sized by a redeclaration or layout qualifier before being indexed with a variable
ERROR: 0:42: 'assign' :  l-value required (can't modify a const)
ERROR: 0:43: 'assign' :  l-value required "v4" (can't modify a uniform)
ERROR: 0:48: 'gl_PointSize' : cannot change arrayness of redeclared block member 
ERROR: 0:49: 'gl_ClipDistance' : cannot change arrayness of redeclared block member 
ERROR: 6 compilation errors.  No code generated.


Shader version: 420
invocations = 0
max_vertices = 0
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!
0:7  Function Definition: foo( (global void)
0:7    Function Parameters: 
0:9    Sequence
0:9      Constant:
0:9        1 (const int)
0:10      gl_Position: direct index for structure (in 4-component vector of float Position)
0:10        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:10          'gl_in' (in 3-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:10          Constant:
0:10            1 (const int)
0:10        Constant:
0:10          0 (const int)
0:11      gl_Position: direct index for structure (in 4-component vector of float Position)
0:11        indirect 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:11          'gl_in' (in 3-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:11          'i' (global int)
0:11        Constant:
0:11          0 (const int)
0:18  Function Definition: foo3( (global void)
0:18    Function Parameters: 
0:20    Sequence
0:20      Constant:
0:20        3 (const int)
0:21      gl_Position: direct index for structure (in 4-component vector of float Position)
0:21        indirect 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 3-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          'i' (global int)
0:21        Constant:
0:21          0 (const int)
0:22      Constant:
0:22        3 (const int)
0:29  Function Definition: foo4( (global void)
0:29    Function Parameters: 
0:?     Sequence
0:40      Sequence
0:40        move second child to first child (temp 4-component vector of float)
0:40          'v' (temp 4-component vector of float)
0:40          Function Call: textureGatherOffset(s21;vf2;vi2; (global 4-component vector of float)
0:40            's2D' (uniform sampler2D)
0:40            direct index (temp 2-component vector of float)
0:40              'coord' (in 3-element array of 2-component vector of float)
0:40              Constant:
0:40                0 (const int)
0:40            vector swizzle (temp 2-component vector of int)
0:40              indirect index (temp 2-component vector of int)
0:40                Constant:
0:40                  0 (const int)
0:40                  1 (const int)
0:40                  1 (const int)
0:40                  -2 (const int)
0:40                  0 (const int)
0:40                  3 (const int)
0:40                  -3 (const int)
0:40                  0 (const int)
0:40                  2 (const int)
0:40                  1 (const int)
0:40                'i' (global int)
0:40              Sequence
0:40                Constant:
0:40                  0 (const int)
0:40                Constant:
0:40                  1 (const int)
0:42      move second child to first child (temp 2-component vector of int)
0:42        vector swizzle (temp 2-component vector of int)
0:42          indirect index (temp 2-component vector of int)
0:42            Constant:
0:42              0 (const int)
0:42              1 (const int)
0:42              1 (const int)
0:42              -2 (const int)
0:42              0 (const int)
0:42              3 (const int)
0:42              -3 (const int)
0:42              0 (const int)
0:42              2 (const int)
0:42              1 (const int)
0:42            'i' (global int)
0:42          Sequence
0:42            Constant:
0:42              0 (const int)
0:42            Constant:
0:42              1 (const int)
0:42        Constant:
0:42          3 (const int)
0:42          3 (const int)
0:43      move second child to first child (temp float)
0:43        direct index (temp float)
0:43          'v4' (uniform 4-component vector of float)
0:43          Constant:
0:43            0 (const int)
0:43        Constant:
0:43          3.200000
0:44      vector swizzle (temp 2-component vector of float)
0:44        'v4' (uniform 4-component vector of float)
0:44        Sequence
0:44          Constant:
0:44            0 (const int)
0:44          Constant:
0:44            1 (const int)
0:52  Function Definition: foo5( (global float)
0:52    Function Parameters: 
0:54    Sequence
0:54      Branch: Return with expression
0:54        Convert int to float (temp float)
0:54          'i' (global int)
0:?   Linker Objects
0:?     'i' (global int)
0:?     'gl_in' (in 3-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:?     '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 PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})


Linked geometry stage:

ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

Shader version: 420
invocations = 0
max_vertices = 0
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!
0:7  Function Definition: foo( (global void)
0:7    Function Parameters: 
0:9    Sequence
0:9      Constant:
0:9        1 (const int)
0:10      gl_Position: direct index for structure (in 4-component vector of float Position)
0:10        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:10          'gl_in' (in 3-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:10          Constant:
0:10            1 (const int)
0:10        Constant:
0:10          0 (const int)
0:11      gl_Position: direct index for structure (in 4-component vector of float Position)
0:11        indirect 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:11          'gl_in' (in 3-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:11          'i' (global int)
0:11        Constant:
0:11          0 (const int)
0:18  Function Definition: foo3( (global void)
0:18    Function Parameters: 
0:20    Sequence
0:20      Constant:
0:20        3 (const int)
0:21      gl_Position: direct index for structure (in 4-component vector of float Position)
0:21        indirect 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 3-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          'i' (global int)
0:21        Constant:
0:21          0 (const int)
0:22      Constant:
0:22        3 (const int)
0:29  Function Definition: foo4( (global void)
0:29    Function Parameters: 
0:?     Sequence
0:40      Sequence
0:40        move second child to first child (temp 4-component vector of float)
0:40          'v' (temp 4-component vector of float)
0:40          Function Call: textureGatherOffset(s21;vf2;vi2; (global 4-component vector of float)
0:40            's2D' (uniform sampler2D)
0:40            direct index (temp 2-component vector of float)
0:40              'coord' (in 3-element array of 2-component vector of float)
0:40              Constant:
0:40                0 (const int)
0:40            vector swizzle (temp 2-component vector of int)
0:40              indirect index (temp 2-component vector of int)
0:40                Constant:
0:40                  0 (const int)
0:40                  1 (const int)
0:40                  1 (const int)
0:40                  -2 (const int)
0:40                  0 (const int)
0:40                  3 (const int)
0:40                  -3 (const int)
0:40                  0 (const int)
0:40                  2 (const int)
0:40                  1 (const int)
0:40                'i' (global int)
0:40              Sequence
0:40                Constant:
0:40                  0 (const int)
0:40                Constant:
0:40                  1 (const int)
0:42      move second child to first child (temp 2-component vector of int)
0:42        vector swizzle (temp 2-component vector of int)
0:42          indirect index (temp 2-component vector of int)
0:42            Constant:
0:42              0 (const int)
0:42              1 (const int)
0:42              1 (const int)
0:42              -2 (const int)
0:42              0 (const int)
0:42              3 (const int)
0:42              -3 (const int)
0:42              0 (const int)
0:42              2 (const int)
0:42              1 (const int)
0:42            'i' (global int)
0:42          Sequence
0:42            Constant:
0:42              0 (const int)
0:42            Constant:
0:42              1 (const int)
0:42        Constant:
0:42          3 (const int)
0:42          3 (const int)
0:43      move second child to first child (temp float)
0:43        direct index (temp float)
0:43          'v4' (uniform 4-component vector of float)
0:43          Constant:
0:43            0 (const int)
0:43        Constant:
0:43          3.200000
0:44      vector swizzle (temp 2-component vector of float)
0:44        'v4' (uniform 4-component vector of float)
0:44        Sequence
0:44          Constant:
0:44            0 (const int)
0:44          Constant:
0:44            1 (const int)
0:52  Function Definition: foo5( (global float)
0:52    Function Parameters: 
0:54    Sequence
0:54      Branch: Return with expression
0:54        Convert int to float (temp float)
0:54          'i' (global int)
0:?   Linker Objects
0:?     'i' (global int)
0:?     'gl_in' (in 3-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:?     '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 PointSize gl_PointSize, layout(stream=0 ) out 1-element array of float ClipDistance gl_ClipDistance})

