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

error: SPIRV-Tools Validation Errors
error: Input variable id <20> is used by entry point 'main' id <4>, but is not listed as an interface
  %i_1 = OpVariable %_ptr_Input_vs_in Input

// Module Version 10000
// Generated by (magic number): 80007
// 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
