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: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)

