hlsl.emptystructreturn.vert
Shader version: 500
0:? Sequence
0:10  Function Definition: @main(struct-vs_in1; ( temp structure{})
0:10    Function Parameters: 
0:10      'i' ( in structure{})
0:?     Sequence
0:12      Branch: Return with expression
0:12        'o' ( temp structure{})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp structure{})
0:?           'i' ( temp structure{})
0:?           'i' ( in structure{})
0:10      Sequence
0:10        move second child to first child ( temp structure{})
0:?           '@entryPointOutput' ( out structure{})
0:10          Function Call: @main(struct-vs_in1; ( temp structure{})
0:?             'i' ( temp structure{})
0:?   Linker Objects


Linked vertex stage:


Shader version: 500
0:? Sequence
0:10  Function Definition: @main(struct-vs_in1; ( temp structure{})
0:10    Function Parameters: 
0:10      'i' ( in structure{})
0:?     Sequence
0:12      Branch: Return with expression
0:12        'o' ( temp structure{})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp structure{})
0:?           'i' ( temp structure{})
0:?           'i' ( in structure{})
0:10      Sequence
0:10        move second child to first child ( temp structure{})
0:?           '@entryPointOutput' ( out structure{})
0:10          Function Call: @main(struct-vs_in1; ( temp structure{})
0:?             'i' ( temp structure{})
0:?   Linker Objects

Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 27

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source HLSL 500
                              Name 4  "main"
                              Name 6  "vs_in"
                              Name 8  "vs_out"
                              Name 11  "@main(struct-vs_in1;"
                              Name 10  "i"
                              Name 14  "o"
                              Name 18  "i"
                              Name 20  "i"
                              Name 23  "@entryPointOutput"
                              Name 24  "param"
               2:             TypeVoid
               3:             TypeFunction 2
        6(vs_in):             TypeStruct
               7:             TypePointer Function 6(vs_in)
       8(vs_out):             TypeStruct
               9:             TypeFunction 8(vs_out) 7(ptr)
              13:             TypePointer Function 8(vs_out)
              19:             TypePointer Input 6(vs_in)
           20(i):     19(ptr) Variable Input
              22:             TypePointer Output 8(vs_out)
23(@entryPointOutput):     22(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           18(i):      7(ptr) Variable Function
       24(param):      7(ptr) Variable Function
              21:    6(vs_in) Load 20(i)
                              Store 18(i) 21
              25:    6(vs_in) Load 18(i)
                              Store 24(param) 25
              26:   8(vs_out) FunctionCall 11(@main(struct-vs_in1;) 24(param)
                              Store 23(@entryPointOutput) 26
                              Return
                              FunctionEnd
11(@main(struct-vs_in1;):   8(vs_out) Function None 9
           10(i):      7(ptr) FunctionParameter
              12:             Label
           14(o):     13(ptr) Variable Function
              15:   8(vs_out) Load 14(o)
                              ReturnValue 15
                              FunctionEnd
