1*dbf520f6SGeorgii Rymar# RUN: yaml2obj %s -o=%t.obj 2*dbf520f6SGeorgii Rymar# RUN: llvm-readobj --codeview-merged-types %t.obj | FileCheck %s --check-prefix=MERGED 3*dbf520f6SGeorgii Rymar# RUN: llvm-readobj --codeview-merged-types --codeview-ghash %t.obj | FileCheck %s --check-prefix=MERGED 4*dbf520f6SGeorgii Rymar 5*dbf520f6SGeorgii Rymar# MERGED: Format: COFF-x86-64 6*dbf520f6SGeorgii Rymar# MERGED-NEXT: Arch: x86_64 7*dbf520f6SGeorgii Rymar# MERGED-NEXT: AddressSize: 64bit 8*dbf520f6SGeorgii Rymar# MERGED-NEXT: MergedTypeStream [ 9*dbf520f6SGeorgii Rymar# MERGED-NEXT: ArgList (0x1000) { 10*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_ARGLIST (0x1201) 11*dbf520f6SGeorgii Rymar# MERGED-NEXT: NumArgs: 0 12*dbf520f6SGeorgii Rymar# MERGED-NEXT: Arguments [ 13*dbf520f6SGeorgii Rymar# MERGED-NEXT: ] 14*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 15*dbf520f6SGeorgii Rymar# MERGED-NEXT: Modifier (0x1001) { 16*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_MODIFIER (0x1001) 17*dbf520f6SGeorgii Rymar# MERGED-NEXT: ModifiedType: void (0x3) 18*dbf520f6SGeorgii Rymar# MERGED-NEXT: Modifiers [ (0x3) 19*dbf520f6SGeorgii Rymar# MERGED-NEXT: Const (0x1) 20*dbf520f6SGeorgii Rymar# MERGED-NEXT: Volatile (0x2) 21*dbf520f6SGeorgii Rymar# MERGED-NEXT: ] 22*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 23*dbf520f6SGeorgii Rymar# MERGED-NEXT: Procedure (0x1002) { 24*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_PROCEDURE (0x1008) 25*dbf520f6SGeorgii Rymar# MERGED-NEXT: ReturnType: void (0x3) 26*dbf520f6SGeorgii Rymar# MERGED-NEXT: CallingConvention: NearC (0x0) 27*dbf520f6SGeorgii Rymar# MERGED-NEXT: FunctionOptions [ (0x0) 28*dbf520f6SGeorgii Rymar# MERGED-NEXT: ] 29*dbf520f6SGeorgii Rymar# MERGED-NEXT: NumParameters: 0 30*dbf520f6SGeorgii Rymar# MERGED-NEXT: ArgListType: () (0x1000) 31*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 32*dbf520f6SGeorgii Rymar# MERGED-NEXT: Pointer (0x1003) { 33*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002) 34*dbf520f6SGeorgii Rymar# MERGED-NEXT: PointeeType: const volatile void (0x1001) 35*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrType: Near64 (0xC) 36*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrMode: Pointer (0x0) 37*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsFlat: 0 38*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsConst: 1 39*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsVolatile: 0 40*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsUnaligned: 0 41*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsRestrict: 0 42*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&: 0 43*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&&: 0 44*dbf520f6SGeorgii Rymar# MERGED-NEXT: SizeOf: 8 45*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 46*dbf520f6SGeorgii Rymar# MERGED-NEXT: Pointer (0x1004) { 47*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002) 48*dbf520f6SGeorgii Rymar# MERGED-NEXT: PointeeType: const volatile void* const (0x1003) 49*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrType: Near64 (0xC) 50*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrMode: Pointer (0x0) 51*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsFlat: 0 52*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsConst: 1 53*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsVolatile: 0 54*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsUnaligned: 0 55*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsRestrict: 0 56*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&: 0 57*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&&: 0 58*dbf520f6SGeorgii Rymar# MERGED-NEXT: SizeOf: 8 59*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 60*dbf520f6SGeorgii Rymar# MERGED-NEXT: Pointer (0x1005) { 61*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002) 62*dbf520f6SGeorgii Rymar# MERGED-NEXT: PointeeType: const volatile void* const* const (0x1004) 63*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrType: Near64 (0xC) 64*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrMode: Pointer (0x0) 65*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsFlat: 0 66*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsConst: 1 67*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsVolatile: 0 68*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsUnaligned: 0 69*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsRestrict: 0 70*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&: 0 71*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&&: 0 72*dbf520f6SGeorgii Rymar# MERGED-NEXT: SizeOf: 8 73*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 74*dbf520f6SGeorgii Rymar# MERGED-NEXT: Pointer (0x1006) { 75*dbf520f6SGeorgii Rymar# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002) 76*dbf520f6SGeorgii Rymar# MERGED-NEXT: PointeeType: const volatile void* const* const* const (0x1005) 77*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrType: Near64 (0xC) 78*dbf520f6SGeorgii Rymar# MERGED-NEXT: PtrMode: Pointer (0x0) 79*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsFlat: 0 80*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsConst: 1 81*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsVolatile: 0 82*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsUnaligned: 0 83*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsRestrict: 0 84*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&: 0 85*dbf520f6SGeorgii Rymar# MERGED-NEXT: IsThisPtr&&: 0 86*dbf520f6SGeorgii Rymar# MERGED-NEXT: SizeOf: 8 87*dbf520f6SGeorgii Rymar# MERGED-NEXT: } 88*dbf520f6SGeorgii Rymar# MERGED-NEXT: ] 89*dbf520f6SGeorgii Rymar# MERGED-NEXT: MergedIDStream [ 90*dbf520f6SGeorgii Rymar# MERGED-NEXT: ] 91*dbf520f6SGeorgii Rymar 92*dbf520f6SGeorgii Rymar--- !COFF 93*dbf520f6SGeorgii Rymarheader: 94*dbf520f6SGeorgii Rymar Machine: IMAGE_FILE_MACHINE_AMD64 95*dbf520f6SGeorgii Rymar Characteristics: [ ] 96*dbf520f6SGeorgii Rymarsections: 97*dbf520f6SGeorgii Rymar - Name: '.debug$T' 98*dbf520f6SGeorgii Rymar Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ] 99*dbf520f6SGeorgii Rymar Alignment: 1 100*dbf520f6SGeorgii Rymar Types: 101*dbf520f6SGeorgii Rymar - Kind: LF_PROCEDURE 102*dbf520f6SGeorgii Rymar Procedure: 103*dbf520f6SGeorgii Rymar ReturnType: 3 104*dbf520f6SGeorgii Rymar CallConv: NearC 105*dbf520f6SGeorgii Rymar Options: [ None ] 106*dbf520f6SGeorgii Rymar ParameterCount: 0 107*dbf520f6SGeorgii Rymar ArgumentList: 4097 108*dbf520f6SGeorgii Rymar - Kind: LF_ARGLIST 109*dbf520f6SGeorgii Rymar ArgList: 110*dbf520f6SGeorgii Rymar ArgIndices: [ ] 111*dbf520f6SGeorgii Rymar - Kind: LF_POINTER 112*dbf520f6SGeorgii Rymar Pointer: 113*dbf520f6SGeorgii Rymar ReferentType: 4099 114*dbf520f6SGeorgii Rymar Attrs: 66572 115*dbf520f6SGeorgii Rymar - Kind: LF_POINTER 116*dbf520f6SGeorgii Rymar Pointer: 117*dbf520f6SGeorgii Rymar ReferentType: 4100 118*dbf520f6SGeorgii Rymar Attrs: 66572 119*dbf520f6SGeorgii Rymar - Kind: LF_POINTER 120*dbf520f6SGeorgii Rymar Pointer: 121*dbf520f6SGeorgii Rymar ReferentType: 4101 122*dbf520f6SGeorgii Rymar Attrs: 66572 123*dbf520f6SGeorgii Rymar - Kind: LF_MODIFIER 124*dbf520f6SGeorgii Rymar Modifier: 125*dbf520f6SGeorgii Rymar ModifiedType: 3 126*dbf520f6SGeorgii Rymar Modifiers: [ None, Const, Volatile ] 127*dbf520f6SGeorgii Rymar - Kind: LF_POINTER 128*dbf520f6SGeorgii Rymar Pointer: 129*dbf520f6SGeorgii Rymar ReferentType: 4098 130*dbf520f6SGeorgii Rymar Attrs: 66572 131*dbf520f6SGeorgii Rymarsymbols: 132*dbf520f6SGeorgii Rymar... 133