functionSemantics.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:74: 'return' : cannot convert return value to function return type 
WARNING: 0:74: 'return' : type conversion on return values was not explicitly allowed until version 420 
ERROR: 1 compilation errors.  No code generated.


Shader version: 400
ERROR: node is still EOpNull!
0:5  Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
0:5    Function Parameters: 
0:5      'a' (in int)
0:5      'b' (const (read only) int)
0:5      'c' (in int)
0:5      'd' (const (read only) int)
0:5      'e' (out int)
0:5      'f' (inout int)
0:7    Sequence
0:7      Sequence
0:7        move second child to first child (temp int)
0:7          'sum' (temp int)
0:7          add (temp int)
0:7            add (temp int)
0:7              add (temp int)
0:7                add (temp int)
0:7                  'a' (in int)
0:7                  'b' (const (read only) int)
0:7                'c' (in int)
0:7              'd' (const (read only) int)
0:7            'f' (inout int)
0:10      multiply second child into first child (temp int)
0:10        'a' (in int)
0:10        Constant:
0:10          64 (const int)
0:12      multiply second child into first child (temp int)
0:12        'c' (in int)
0:12        Constant:
0:12          64 (const int)
0:14      move second child to first child (temp int)
0:14        'e' (out int)
0:14        Constant:
0:14          1024 (const int)
0:15      multiply second child into first child (temp int)
0:15        'f' (inout int)
0:15        Constant:
0:15          64 (const int)
0:17      add second child into first child (temp int)
0:17        'sum' (temp int)
0:17        add (temp int)
0:17          add (temp int)
0:17            add (temp int)
0:17              add (temp int)
0:17                add (temp int)
0:17                  'a' (in int)
0:17                  component-wise multiply (temp int)
0:17                    Constant:
0:17                      64 (const int)
0:17                    'b' (const (read only) int)
0:17                'c' (in int)
0:17              component-wise multiply (temp int)
0:17                Constant:
0:17                  64 (const int)
0:17                'd' (const (read only) int)
0:17            'e' (out int)
0:17          'f' (inout int)
0:20      Branch: Return with expression
0:20        'sum' (temp int)
0:23  Function Definition: foo2(f1;vf3;i1; (global int)
0:23    Function Parameters: 
0:23      'a' (in float)
0:23      'b' (in 3-component vector of float)
0:23      'r' (out int)
0:25    Sequence
0:25      move second child to first child (temp int)
0:25        'r' (out int)
0:25        Convert float to int (temp int)
0:25          component-wise multiply (temp float)
0:25            Constant:
0:25              3.000000
0:25            'a' (in float)
0:26      Branch: Return with expression
0:26        Convert float to int (temp int)
0:26          component-wise multiply (temp float)
0:26            Constant:
0:26              5.000000
0:26            direct index (temp float)
0:26              'b' (in 3-component vector of float)
0:26              Constant:
0:26                1 (const int)
0:29  Function Definition: foo3( (global int)
0:29    Function Parameters: 
0:31    Sequence
0:31      Test condition and select (temp void)
0:31        Condition
0:31        Compare Greater Than (temp bool)
0:31          'u' (uniform float)
0:31          Constant:
0:31            3.200000
0:31        true case
0:32        Sequence
0:32          Branch: Kill
0:33          Branch: Return with expression
0:33            Constant:
0:33              1000000 (const int)
0:36      Branch: Return with expression
0:36        Constant:
0:36          2000000 (const int)
0:39  Function Definition: main( (global void)
0:39    Function Parameters: 
0:?     Sequence
0:42      Sequence
0:42        move second child to first child (temp int)
0:42          't' (temp int)
0:42          Constant:
0:42            2 (const int)
0:46      move second child to first child (temp int)
0:46        direct index (temp int)
0:46          t: direct index for structure (temp 4-component vector of int)
0:46            'f' (temp structure{temp 4-component vector of int t})
0:46            Constant:
0:46              0 (const int)
0:46          Constant:
0:46            1 (const int)
0:46        Constant:
0:46          32 (const int)
0:49      Sequence
0:49        move second child to first child (temp int)
0:49          'color' (temp int)
0:49          Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)
0:49            Constant:
0:49              1 (const int)
0:49            Constant:
0:49              2 (const int)
0:49            add (temp int)
0:49              't' (temp int)
0:49              't' (temp int)
0:49            Constant:
0:49              8 (const int)
0:49            'e' (temp int)
0:49            direct index (temp int)
0:49              t: direct index for structure (temp 4-component vector of int)
0:49                'f' (temp structure{temp 4-component vector of int t})
0:49                Constant:
0:49                  0 (const int)
0:49              Constant:
0:49                1 (const int)
0:51      add second child into first child (temp int)
0:51        'color' (temp int)
0:51        component-wise multiply (temp int)
0:51          Constant:
0:51            128 (const int)
0:51          add (temp int)
0:51            'e' (temp int)
0:51            direct index (temp int)
0:51              t: direct index for structure (temp 4-component vector of int)
0:51                'f' (temp structure{temp 4-component vector of int t})
0:51                Constant:
0:51                  0 (const int)
0:51              Constant:
0:51                1 (const int)
0:57      move second child to first child (temp float)
0:57        'ret' (temp float)
0:57        Convert int to float (temp float)
0:57          Comma (global int)
0:57            move second child to first child (temp int)
0:57              'tempReturn' (global int)
0:57              Function Call: foo2(f1;vf3;i1; (global int)
0:57                Constant:
0:57                  4.000000
0:57                Constant:
0:57                  1.000000
0:57                  2.000000
0:57                  3.000000
0:57                'tempArg' (temp int)
0:57            move second child to first child (temp float)
0:57              'arg' (temp float)
0:57              Convert int to float (temp float)
0:57                'tempArg' (temp int)
0:57            'tempReturn' (global int)
0:58      add second child into first child (temp int)
0:58        'color' (temp int)
0:58        Convert float to int (temp int)
0:58          add (temp float)
0:58            'ret' (temp float)
0:58            'arg' (temp float)
0:60      add second child into first child (temp int)
0:60        'color' (temp int)
0:60        Function Call: foo3( (global int)
0:62      move second child to first child (temp 4-component vector of float)
0:62        'gl_FragColor' (fragColor 4-component vector of float FragColor)
0:62        Construct vec4 (temp 4-component vector of float)
0:62          Convert int to float (temp float)
0:62            'color' (temp int)
0:66  Function Definition: aggCall( (global void)
0:66    Function Parameters: 
0:?     Sequence
0:69      Function Call: m(vf2; (global 3-component vector of float)
0:69        Convert int to float (temp 2-component vector of float)
0:69          Construct ivec2 (temp 2-component vector of int)
0:69            Convert float to int (temp int)
0:69              'F' (temp float)
0:72  Function Definition: badConv( (global 4-component vector of float)
0:72    Function Parameters: 
0:74    Sequence
0:74      Branch: Return with expression
0:74        'u' (uniform float)
0:?   Linker Objects
0:?     'u' (uniform float)


Linked fragment stage:


Shader version: 400
ERROR: node is still EOpNull!
0:5  Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
0:5    Function Parameters: 
0:5      'a' (in int)
0:5      'b' (const (read only) int)
0:5      'c' (in int)
0:5      'd' (const (read only) int)
0:5      'e' (out int)
0:5      'f' (inout int)
0:7    Sequence
0:7      Sequence
0:7        move second child to first child (temp int)
0:7          'sum' (temp int)
0:7          add (temp int)
0:7            add (temp int)
0:7              add (temp int)
0:7                add (temp int)
0:7                  'a' (in int)
0:7                  'b' (const (read only) int)
0:7                'c' (in int)
0:7              'd' (const (read only) int)
0:7            'f' (inout int)
0:10      multiply second child into first child (temp int)
0:10        'a' (in int)
0:10        Constant:
0:10          64 (const int)
0:12      multiply second child into first child (temp int)
0:12        'c' (in int)
0:12        Constant:
0:12          64 (const int)
0:14      move second child to first child (temp int)
0:14        'e' (out int)
0:14        Constant:
0:14          1024 (const int)
0:15      multiply second child into first child (temp int)
0:15        'f' (inout int)
0:15        Constant:
0:15          64 (const int)
0:17      add second child into first child (temp int)
0:17        'sum' (temp int)
0:17        add (temp int)
0:17          add (temp int)
0:17            add (temp int)
0:17              add (temp int)
0:17                add (temp int)
0:17                  'a' (in int)
0:17                  component-wise multiply (temp int)
0:17                    Constant:
0:17                      64 (const int)
0:17                    'b' (const (read only) int)
0:17                'c' (in int)
0:17              component-wise multiply (temp int)
0:17                Constant:
0:17                  64 (const int)
0:17                'd' (const (read only) int)
0:17            'e' (out int)
0:17          'f' (inout int)
0:20      Branch: Return with expression
0:20        'sum' (temp int)
0:23  Function Definition: foo2(f1;vf3;i1; (global int)
0:23    Function Parameters: 
0:23      'a' (in float)
0:23      'b' (in 3-component vector of float)
0:23      'r' (out int)
0:25    Sequence
0:25      move second child to first child (temp int)
0:25        'r' (out int)
0:25        Convert float to int (temp int)
0:25          component-wise multiply (temp float)
0:25            Constant:
0:25              3.000000
0:25            'a' (in float)
0:26      Branch: Return with expression
0:26        Convert float to int (temp int)
0:26          component-wise multiply (temp float)
0:26            Constant:
0:26              5.000000
0:26            direct index (temp float)
0:26              'b' (in 3-component vector of float)
0:26              Constant:
0:26                1 (const int)
0:29  Function Definition: foo3( (global int)
0:29    Function Parameters: 
0:31    Sequence
0:31      Test condition and select (temp void)
0:31        Condition
0:31        Compare Greater Than (temp bool)
0:31          'u' (uniform float)
0:31          Constant:
0:31            3.200000
0:31        true case
0:32        Sequence
0:32          Branch: Kill
0:33          Branch: Return with expression
0:33            Constant:
0:33              1000000 (const int)
0:36      Branch: Return with expression
0:36        Constant:
0:36          2000000 (const int)
0:39  Function Definition: main( (global void)
0:39    Function Parameters: 
0:?     Sequence
0:42      Sequence
0:42        move second child to first child (temp int)
0:42          't' (temp int)
0:42          Constant:
0:42            2 (const int)
0:46      move second child to first child (temp int)
0:46        direct index (temp int)
0:46          t: direct index for structure (temp 4-component vector of int)
0:46            'f' (temp structure{temp 4-component vector of int t})
0:46            Constant:
0:46              0 (const int)
0:46          Constant:
0:46            1 (const int)
0:46        Constant:
0:46          32 (const int)
0:49      Sequence
0:49        move second child to first child (temp int)
0:49          'color' (temp int)
0:49          Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)
0:49            Constant:
0:49              1 (const int)
0:49            Constant:
0:49              2 (const int)
0:49            add (temp int)
0:49              't' (temp int)
0:49              't' (temp int)
0:49            Constant:
0:49              8 (const int)
0:49            'e' (temp int)
0:49            direct index (temp int)
0:49              t: direct index for structure (temp 4-component vector of int)
0:49                'f' (temp structure{temp 4-component vector of int t})
0:49                Constant:
0:49                  0 (const int)
0:49              Constant:
0:49                1 (const int)
0:51      add second child into first child (temp int)
0:51        'color' (temp int)
0:51        component-wise multiply (temp int)
0:51          Constant:
0:51            128 (const int)
0:51          add (temp int)
0:51            'e' (temp int)
0:51            direct index (temp int)
0:51              t: direct index for structure (temp 4-component vector of int)
0:51                'f' (temp structure{temp 4-component vector of int t})
0:51                Constant:
0:51                  0 (const int)
0:51              Constant:
0:51                1 (const int)
0:57      move second child to first child (temp float)
0:57        'ret' (temp float)
0:57        Convert int to float (temp float)
0:57          Comma (global int)
0:57            move second child to first child (temp int)
0:57              'tempReturn' (global int)
0:57              Function Call: foo2(f1;vf3;i1; (global int)
0:57                Constant:
0:57                  4.000000
0:57                Constant:
0:57                  1.000000
0:57                  2.000000
0:57                  3.000000
0:57                'tempArg' (temp int)
0:57            move second child to first child (temp float)
0:57              'arg' (temp float)
0:57              Convert int to float (temp float)
0:57                'tempArg' (temp int)
0:57            'tempReturn' (global int)
0:58      add second child into first child (temp int)
0:58        'color' (temp int)
0:58        Convert float to int (temp int)
0:58          add (temp float)
0:58            'ret' (temp float)
0:58            'arg' (temp float)
0:60      add second child into first child (temp int)
0:60        'color' (temp int)
0:60        Function Call: foo3( (global int)
0:62      move second child to first child (temp 4-component vector of float)
0:62        'gl_FragColor' (fragColor 4-component vector of float FragColor)
0:62        Construct vec4 (temp 4-component vector of float)
0:62          Convert int to float (temp float)
0:62            'color' (temp int)
0:?   Linker Objects
0:?     'u' (uniform float)

