spv.simpleFunctionCall.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 19

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 12 17
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 150
                              Name 4  "main"
                              Name 9  "foo("
                              Name 12  "BaseColor"
                              Name 17  "gl_FragColor"
                              Decorate 17(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypePointer Input 7(fvec4)
   12(BaseColor):     11(ptr) Variable Input
              16:             TypePointer Output 7(fvec4)
17(gl_FragColor):     16(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              18:    7(fvec4) FunctionCall 9(foo()
                              Store 17(gl_FragColor) 18
                              Return
                              FunctionEnd
         9(foo():    7(fvec4) Function None 8
              10:             Label
              13:    7(fvec4) Load 12(BaseColor)
                              ReturnValue 13
                              FunctionEnd
