hlsl.params.default.negative.frag
ERROR: 0:27: '' : invalid default parameter value 
ERROR: 0:32: 'p1' : invalid parameter after default value parameters 
ERROR: 0:40: 'fn1' : ambiguous best function under implicit type conversion 
ERROR: 0:47: 'fn2' : ambiguous best function under implicit type conversion 
ERROR: 4 compilation errors.  No code generated.


Shader version: 500
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:7  Function Definition: fn1(vi4; ( temp 4-component vector of int)
0:7    Function Parameters: 
0:7      'p0' ( in 4-component vector of int)
0:?     Sequence
0:7      Branch: Return with expression
0:7        Constant:
0:7          1 (const int)
0:7          2 (const int)
0:7          3 (const int)
0:7          4 (const int)
0:9  Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int)
0:9    Function Parameters: 
0:9      'p0' ( in 4-component vector of int)
0:9      'b1' ( in bool)
0:9      'b2' ( in bool)
0:?     Sequence
0:10      Branch: Return with expression
0:10        'p0' ( in 4-component vector of int)
0:17  Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:17    Function Parameters: 
0:17      'p0' ( in 4-component vector of int)
0:17      'p1' ( in 4-component vector of int)
0:17      'p2' ( in 2-element array of int)
0:17      'p3' ( in int)
0:?     Sequence
0:18      Branch: Return with expression
0:18        add ( temp 4-component vector of int)
0:18          add ( temp 4-component vector of int)
0:18            add ( temp 4-component vector of int)
0:18              'p0' ( in 4-component vector of int)
0:18              'p1' ( in 4-component vector of int)
0:18            direct index ( temp int)
0:18              'p2' ( in 2-element array of int)
0:18              Constant:
0:18                0 (const int)
0:18          'p3' ( in int)
0:23  Function Definition: fn2(vi4;i1; ( temp 4-component vector of int)
0:23    Function Parameters: 
0:23      'p0' ( in 4-component vector of int)
0:23      'x' ( in int)
0:?     Sequence
0:24      Branch: Return with expression
0:24        Constant:
0:24          10 (const int)
0:24          11 (const int)
0:24          12 (const int)
0:24          13 (const int)
0:28  Function Definition: fn2(vi4; ( temp 4-component vector of int)
0:28    Function Parameters: 
0:28      'p0' ( in 4-component vector of int)
0:?     Sequence
0:29      Branch: Return with expression
0:29        add ( temp 4-component vector of int)
0:29          'p0' ( in 4-component vector of int)
0:29          Constant:
0:29            20 (const int)
0:29            21 (const int)
0:29            22 (const int)
0:29            23 (const int)
0:33  Function Definition: fn3(i1; ( temp void)
0:33    Function Parameters: 
0:33      'p0' ( in int)
0:37  Function Definition: @main( ( temp 4-component vector of int)
0:37    Function Parameters: 
0:?     Sequence
0:38      Sequence
0:38        move second child to first child ( temp 2-element array of int)
0:38          'myarray' ( temp 2-element array of int)
0:38          Constant:
0:38            30 (const int)
0:38            31 (const int)
0:49      Branch: Return with expression
0:48        add ( temp 4-component vector of int)
0:47          add ( temp 4-component vector of int)
0:45            add ( temp 4-component vector of int)
0:44              add ( temp 4-component vector of int)
0:43                add ( temp 4-component vector of int)
0:42                  add ( temp 4-component vector of int)
0:41                    add ( temp 4-component vector of int)
0:40                      add ( temp 4-component vector of int)
0:40                        Function Call: fn1(vi4; ( temp 4-component vector of int)
0:40                          Constant:
0:40                            100 (const int)
0:40                            100 (const int)
0:40                            100 (const int)
0:40                            100 (const int)
0:41                        Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:41                          Constant:
0:41                            101 (const int)
0:41                            101 (const int)
0:41                            101 (const int)
0:41                            101 (const int)
0:41                          ui4: direct index for structure ( uniform 4-component vector of int)
0:41                            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:41                            Constant:
0:41                              0 (const uint)
0:15                          Constant:
0:15                            1 (const int)
0:15                            2 (const int)
0:16                          Constant:
0:16                            42 (const int)
0:42                      Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:42                        Constant:
0:42                          102 (const int)
0:42                          102 (const int)
0:42                          102 (const int)
0:42                          102 (const int)
0:42                        ui4: direct index for structure ( uniform 4-component vector of int)
0:42                          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:42                          Constant:
0:42                            0 (const uint)
0:42                        'myarray' ( temp 2-element array of int)
0:16                        Constant:
0:16                          42 (const int)
0:43                    Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:43                      Constant:
0:43                        103 (const int)
0:43                        103 (const int)
0:43                        103 (const int)
0:43                        103 (const int)
0:43                      ui4: direct index for structure ( uniform 4-component vector of int)
0:43                        'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:43                        Constant:
0:43                          0 (const uint)
0:43                      'myarray' ( temp 2-element array of int)
0:43                      Constant:
0:43                        99 (const int)
0:44                  Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int)
0:44                    Constant:
0:44                      104 (const int)
0:44                      104 (const int)
0:44                      104 (const int)
0:44                      104 (const int)
0:44                    Constant:
0:44                      false (const bool)
0:9                    Constant:
0:9                      false (const bool)
0:45                Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int)
0:45                  Constant:
0:45                    105 (const int)
0:45                    105 (const int)
0:45                    105 (const int)
0:45                    105 (const int)
0:45                  Constant:
0:45                    false (const bool)
0:45                  Constant:
0:45                    true (const bool)
0:47              Function Call: fn2(vi4; ( temp 4-component vector of int)
0:47                Constant:
0:47                  112 (const int)
0:47                  112 (const int)
0:47                  112 (const int)
0:47                  112 (const int)
0:48            Function Call: fn2(vi4;i1; ( temp 4-component vector of int)
0:48              Constant:
0:48                110 (const int)
0:48                110 (const int)
0:48                110 (const int)
0:48                110 (const int)
0:48              Constant:
0:48                11 (const int)
0:49          Function Call: fn2(vi4;i1; ( temp 4-component vector of int)
0:49            Constant:
0:49              111 (const int)
0:49              111 (const int)
0:49              111 (const int)
0:49              111 (const int)
0:49            Constant:
0:49              12 (const int)
0:37  Function Definition: main( ( temp void)
0:37    Function Parameters: 
0:?     Sequence
0:37      move second child to first child ( temp 4-component vector of int)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of int)
0:37        Function Call: @main( ( temp 4-component vector of int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:?     'cia' ( const int)
0:?       -4 (const int)
0:?     'cib' ( const int)
0:?       -42 (const int)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of int)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
ERROR: node is still EOpNull!
0:7  Function Definition: fn1(vi4; ( temp 4-component vector of int)
0:7    Function Parameters: 
0:7      'p0' ( in 4-component vector of int)
0:?     Sequence
0:7      Branch: Return with expression
0:7        Constant:
0:7          1 (const int)
0:7          2 (const int)
0:7          3 (const int)
0:7          4 (const int)
0:9  Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int)
0:9    Function Parameters: 
0:9      'p0' ( in 4-component vector of int)
0:9      'b1' ( in bool)
0:9      'b2' ( in bool)
0:?     Sequence
0:10      Branch: Return with expression
0:10        'p0' ( in 4-component vector of int)
0:17  Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:17    Function Parameters: 
0:17      'p0' ( in 4-component vector of int)
0:17      'p1' ( in 4-component vector of int)
0:17      'p2' ( in 2-element array of int)
0:17      'p3' ( in int)
0:?     Sequence
0:18      Branch: Return with expression
0:18        add ( temp 4-component vector of int)
0:18          add ( temp 4-component vector of int)
0:18            add ( temp 4-component vector of int)
0:18              'p0' ( in 4-component vector of int)
0:18              'p1' ( in 4-component vector of int)
0:18            direct index ( temp int)
0:18              'p2' ( in 2-element array of int)
0:18              Constant:
0:18                0 (const int)
0:18          'p3' ( in int)
0:23  Function Definition: fn2(vi4;i1; ( temp 4-component vector of int)
0:23    Function Parameters: 
0:23      'p0' ( in 4-component vector of int)
0:23      'x' ( in int)
0:?     Sequence
0:24      Branch: Return with expression
0:24        Constant:
0:24          10 (const int)
0:24          11 (const int)
0:24          12 (const int)
0:24          13 (const int)
0:28  Function Definition: fn2(vi4; ( temp 4-component vector of int)
0:28    Function Parameters: 
0:28      'p0' ( in 4-component vector of int)
0:?     Sequence
0:29      Branch: Return with expression
0:29        add ( temp 4-component vector of int)
0:29          'p0' ( in 4-component vector of int)
0:29          Constant:
0:29            20 (const int)
0:29            21 (const int)
0:29            22 (const int)
0:29            23 (const int)
0:33  Function Definition: fn3(i1; ( temp void)
0:33    Function Parameters: 
0:33      'p0' ( in int)
0:37  Function Definition: @main( ( temp 4-component vector of int)
0:37    Function Parameters: 
0:?     Sequence
0:38      Sequence
0:38        move second child to first child ( temp 2-element array of int)
0:38          'myarray' ( temp 2-element array of int)
0:38          Constant:
0:38            30 (const int)
0:38            31 (const int)
0:49      Branch: Return with expression
0:48        add ( temp 4-component vector of int)
0:47          add ( temp 4-component vector of int)
0:45            add ( temp 4-component vector of int)
0:44              add ( temp 4-component vector of int)
0:43                add ( temp 4-component vector of int)
0:42                  add ( temp 4-component vector of int)
0:41                    add ( temp 4-component vector of int)
0:40                      add ( temp 4-component vector of int)
0:40                        Function Call: fn1(vi4; ( temp 4-component vector of int)
0:40                          Constant:
0:40                            100 (const int)
0:40                            100 (const int)
0:40                            100 (const int)
0:40                            100 (const int)
0:41                        Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:41                          Constant:
0:41                            101 (const int)
0:41                            101 (const int)
0:41                            101 (const int)
0:41                            101 (const int)
0:41                          ui4: direct index for structure ( uniform 4-component vector of int)
0:41                            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:41                            Constant:
0:41                              0 (const uint)
0:15                          Constant:
0:15                            1 (const int)
0:15                            2 (const int)
0:16                          Constant:
0:16                            42 (const int)
0:42                      Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:42                        Constant:
0:42                          102 (const int)
0:42                          102 (const int)
0:42                          102 (const int)
0:42                          102 (const int)
0:42                        ui4: direct index for structure ( uniform 4-component vector of int)
0:42                          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:42                          Constant:
0:42                            0 (const uint)
0:42                        'myarray' ( temp 2-element array of int)
0:16                        Constant:
0:16                          42 (const int)
0:43                    Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int)
0:43                      Constant:
0:43                        103 (const int)
0:43                        103 (const int)
0:43                        103 (const int)
0:43                        103 (const int)
0:43                      ui4: direct index for structure ( uniform 4-component vector of int)
0:43                        'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:43                        Constant:
0:43                          0 (const uint)
0:43                      'myarray' ( temp 2-element array of int)
0:43                      Constant:
0:43                        99 (const int)
0:44                  Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int)
0:44                    Constant:
0:44                      104 (const int)
0:44                      104 (const int)
0:44                      104 (const int)
0:44                      104 (const int)
0:44                    Constant:
0:44                      false (const bool)
0:9                    Constant:
0:9                      false (const bool)
0:45                Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int)
0:45                  Constant:
0:45                    105 (const int)
0:45                    105 (const int)
0:45                    105 (const int)
0:45                    105 (const int)
0:45                  Constant:
0:45                    false (const bool)
0:45                  Constant:
0:45                    true (const bool)
0:47              Function Call: fn2(vi4; ( temp 4-component vector of int)
0:47                Constant:
0:47                  112 (const int)
0:47                  112 (const int)
0:47                  112 (const int)
0:47                  112 (const int)
0:48            Function Call: fn2(vi4;i1; ( temp 4-component vector of int)
0:48              Constant:
0:48                110 (const int)
0:48                110 (const int)
0:48                110 (const int)
0:48                110 (const int)
0:48              Constant:
0:48                11 (const int)
0:49          Function Call: fn2(vi4;i1; ( temp 4-component vector of int)
0:49            Constant:
0:49              111 (const int)
0:49              111 (const int)
0:49              111 (const int)
0:49              111 (const int)
0:49            Constant:
0:49              12 (const int)
0:37  Function Definition: main( ( temp void)
0:37    Function Parameters: 
0:?     Sequence
0:37      move second child to first child ( temp 4-component vector of int)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of int)
0:37        Function Call: @main( ( temp 4-component vector of int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4,  uniform float ufvar})
0:?     'cia' ( const int)
0:?       -4 (const int)
0:?     'cib' ( const int)
0:?       -42 (const int)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of int)

SPIR-V is not generated for failed compile or link
