; Tests translation of DebugTypeInheritance and DebugLocalVariable with
; DebugInfoNone type

; REQUIRES: spirv-as

; RUN: spirv-as %s --target-env spv1.1 -o %t.spv
; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
; RUN: llvm-dis %t.rev.bc -o %t.rev.ll
; RUN: FileCheck %s --input-file %t.rev.ll --check-prefix CHECK-LLVM

; CHECK-LLVM: DILocalVariable(name: "c", scope: !9, file: !3, line: 7, type: ![[#Type:]])
; CHECK-LLVM: ![[#Type]] = !DIBasicType(tag: DW_TAG_unspecified_type, name: "SPIRV unknown type")
; CHECK-LLVM-NOT: DW_TAG_inheritance

; SPIR-V
; Version: 1.0
; Generator: Khronos LLVM/SPIR-V Translator; 14
; Bound: 62
; Schema: 0
               OpCapability Addresses
               OpCapability Linkage
               OpCapability Kernel
               OpCapability Int8
               OpExtension "SPV_KHR_non_semantic_info"
          %1 = OpExtInstImport "OpenCL.std"
          %2 = OpExtInstImport "NonSemantic.Shader.DebugInfo.100"
               OpMemoryModel Physical64 OpenCL
         %15 = OpString "/app/example.cpp"
         %17 = OpString "0"
         %20 = OpString ""
         %26 = OpString "int"
         %31 = OpString "_ZTS1C"
         %32 = OpString "C"
         %35 = OpString "_ZTS1B"
         %36 = OpString "B"
         %38 = OpString "_ZTS1A"
         %39 = OpString "A"
         %48 = OpString "foo"
         %49 = OpString "_Z3foov"
         %53 = OpString "c"
               OpSource Unknown 0
               OpName %_Z3foov "_Z3foov"
               OpName %class_C "class.C"
               OpDecorate %_Z3foov LinkageAttributes "_Z3foov" Export
               OpDecorate %10 Alignment 1
       %uint = OpTypeInt 32 0
      %uchar = OpTypeInt 8 0
     %uint_0 = OpConstant %uint 0
     %uint_1 = OpConstant %uint 1
 %uint_65536 = OpConstant %uint 65536
     %uint_4 = OpConstant %uint 4
     %uint_6 = OpConstant %uint 6
    %uint_32 = OpConstant %uint 32
     %uint_8 = OpConstant %uint 8
 %uint_32768 = OpConstant %uint 32768
     %uint_3 = OpConstant %uint 3
     %uint_2 = OpConstant %uint 2
   %uint_136 = OpConstant %uint 136
     %uint_7 = OpConstant %uint 7
    %uint_11 = OpConstant %uint 11
    %uint_12 = OpConstant %uint 12
          %4 = OpTypeFunction %uint
    %class_C = OpTypeStruct %uchar
%_ptr_Function_class_C = OpTypePointer Function %class_C
       %void = OpTypeVoid
         %12 = OpExtInst %void %2 DebugInfoNone
         %16 = OpExtInst %void %2 DebugSource %15
         %19 = OpExtInst %void %2 DebugBuildIdentifier %17 %uint_1
         %21 = OpExtInst %void %2 DebugStoragePath %20
         %25 = OpExtInst %void %2 DebugCompilationUnit %uint_65536 %uint_4 %16 %uint_6
         %28 = OpExtInst %void %2 DebugTypeBasic %26 %uint_32 %uint_4 %12
         %29 = OpExtInst %void %2 DebugTypeFunction %uint_0 %28
         %37 = OpExtInst %void %2 DebugTypeComposite %39 %uint_0 %16 %uint_1 %uint_0 %25 %38 %uint_8 %uint_32768
         %43 = OpExtInst %void %2 DebugTypeInheritance %37 %uint_0 %uint_0 %uint_3
         %34 = OpExtInst %void %2 DebugTypeComposite %36 %uint_0 %16 %uint_2 %uint_0 %25 %35 %uint_8 %uint_32768 %43
         %46 = OpExtInst %void %2 DebugTypeInheritance %34 %uint_0 %uint_0 %uint_3
         %30 = OpExtInst %void %2 DebugTypeComposite %32 %uint_0 %16 %uint_3 %uint_0 %25 %31 %uint_8 %uint_32768 %46
         %51 = OpExtInst %void %2 DebugFunction %48 %29 %16 %uint_4 %uint_0 %25 %49 %uint_136 %uint_4 %12
         %55 = OpExtInst %void %2 DebugLocalVariable %53 %12 %16 %uint_7 %uint_0 %51 %uint_0
         %56 = OpExtInst %void %2 DebugExpression
    %_Z3foov = OpFunction %uint DontInline %4
          %6 = OpLabel
         %52 = OpExtInst %void %2 DebugFunctionDefinition %51 %_Z3foov
         %10 = OpVariable %_ptr_Function_class_C Function
         %57 = OpExtInst %void %2 DebugScope %51
         %60 = OpExtInst %void %2 DebugLine %15 %uint_7 %uint_7 %uint_11 %uint_12
         %13 = OpExtInst %void %2 DebugDeclare %55 %10 %56
         %61 = OpExtInst %void %2 DebugLine %15 %uint_8 %uint_8 %uint_3 %uint_4
               OpReturnValue %uint_0
               OpFunctionEnd
