hlsl.void.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1  Function Definition: foo1( (temp void)
0:1    Function Parameters: 
0:2  Function Definition: foo2( (temp void)
0:2    Function Parameters: 
0:5  Function Definition: PixelShaderFunction(vf4; (temp void)
0:5    Function Parameters: 
0:5      'input' (layout(location=0 ) in 4-component vector of float)
0:?     Sequence
0:6      Function Call: foo1( (temp void)
0:7      Function Call: foo2( (temp void)
0:8      Branch: Return
0:?   Linker Objects
0:?     'input' (layout(location=0 ) in 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1  Function Definition: foo1( (temp void)
0:1    Function Parameters: 
0:2  Function Definition: foo2( (temp void)
0:2    Function Parameters: 
0:5  Function Definition: PixelShaderFunction(vf4; (temp void)
0:5    Function Parameters: 
0:5      'input' (layout(location=0 ) in 4-component vector of float)
0:?     Sequence
0:6      Function Call: foo1( (temp void)
0:7      Function Call: foo2( (temp void)
0:8      Branch: Return
0:?   Linker Objects
0:?     'input' (layout(location=0 ) in 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 17

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 16
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 6  "foo1("
                              Name 8  "foo2("
                              Name 16  "input"
                              Decorate 16(input) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
              13:             TypeFloat 32
              14:             TypeVector 13(float) 4
              15:             TypePointer Input 14(fvec4)
       16(input):     15(ptr) Variable Input
4(PixelShaderFunction):           2 Function None 3
               5:             Label
              10:           2 FunctionCall 6(foo1()
              11:           2 FunctionCall 8(foo2()
                              Return
                              FunctionEnd
        6(foo1():           2 Function None 3
               7:             Label
                              Return
                              FunctionEnd
        8(foo2():           2 Function None 3
               9:             Label
                              Return
                              FunctionEnd
