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