# RUN: yaml2obj %s -o=%t.obj
# RUN: llvm-readobj --codeview-merged-types %t.obj | FileCheck %s --check-prefix=MERGED
# RUN: llvm-readobj --codeview-merged-types --codeview-ghash %t.obj | FileCheck %s --check-prefix=MERGED
# MERGED: Format: COFF-x86-64
# MERGED-NEXT: Arch: x86_64
# MERGED-NEXT: AddressSize: 64bit
# MERGED-NEXT: MergedTypeStream [
# MERGED-NEXT: ArgList (0x1000) {
# MERGED-NEXT: TypeLeafKind: LF_ARGLIST (0x1201)
# MERGED-NEXT: NumArgs: 0
# MERGED-NEXT: Arguments [
# MERGED-NEXT: ]
# MERGED-NEXT: }
# MERGED-NEXT: Modifier (0x1001) {
# MERGED-NEXT: TypeLeafKind: LF_MODIFIER (0x1001)
# MERGED-NEXT: ModifiedType: void (0x3)
# MERGED-NEXT: Modifiers [ (0x3)
# MERGED-NEXT: Const (0x1)
# MERGED-NEXT: Volatile (0x2)
# MERGED-NEXT: ]
# MERGED-NEXT: }
# MERGED-NEXT: Procedure (0x1002) {
# MERGED-NEXT: TypeLeafKind: LF_PROCEDURE (0x1008)
# MERGED-NEXT: ReturnType: void (0x3)
# MERGED-NEXT: CallingConvention: NearC (0x0)
# MERGED-NEXT: FunctionOptions [ (0x0)
# MERGED-NEXT: ]
# MERGED-NEXT: NumParameters: 0
# MERGED-NEXT: ArgListType: () (0x1000)
# MERGED-NEXT: }
# MERGED-NEXT: Pointer (0x1003) {
# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT: PointeeType: const volatile void (0x1001)
# MERGED-NEXT: PtrType: Near64 (0xC)
# MERGED-NEXT: PtrMode: Pointer (0x0)
# MERGED-NEXT: IsFlat: 0
# MERGED-NEXT: IsConst: 1
# MERGED-NEXT: IsVolatile: 0
# MERGED-NEXT: IsUnaligned: 0
# MERGED-NEXT: IsRestrict: 0
# MERGED-NEXT: IsThisPtr&: 0
# MERGED-NEXT: IsThisPtr&&: 0
# MERGED-NEXT: SizeOf: 8
# MERGED-NEXT: }
# MERGED-NEXT: Pointer (0x1004) {
# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT: PointeeType: const volatile void* const (0x1003)
# MERGED-NEXT: PtrType: Near64 (0xC)
# MERGED-NEXT: PtrMode: Pointer (0x0)
# MERGED-NEXT: IsFlat: 0
# MERGED-NEXT: IsConst: 1
# MERGED-NEXT: IsVolatile: 0
# MERGED-NEXT: IsUnaligned: 0
# MERGED-NEXT: IsRestrict: 0
# MERGED-NEXT: IsThisPtr&: 0
# MERGED-NEXT: IsThisPtr&&: 0
# MERGED-NEXT: SizeOf: 8
# MERGED-NEXT: }
# MERGED-NEXT: Pointer (0x1005) {
# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT: PointeeType: const volatile void* const* const (0x1004)
# MERGED-NEXT: PtrType: Near64 (0xC)
# MERGED-NEXT: PtrMode: Pointer (0x0)
# MERGED-NEXT: IsFlat: 0
# MERGED-NEXT: IsConst: 1
# MERGED-NEXT: IsVolatile: 0
# MERGED-NEXT: IsUnaligned: 0
# MERGED-NEXT: IsRestrict: 0
# MERGED-NEXT: IsThisPtr&: 0
# MERGED-NEXT: IsThisPtr&&: 0
# MERGED-NEXT: SizeOf: 8
# MERGED-NEXT: }
# MERGED-NEXT: Pointer (0x1006) {
# MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT: PointeeType: const volatile void* const* const* const (0x1005)
# MERGED-NEXT: PtrType: Near64 (0xC)
# MERGED-NEXT: PtrMode: Pointer (0x0)
# MERGED-NEXT: IsFlat: 0
# MERGED-NEXT: IsConst: 1
# MERGED-NEXT: IsVolatile: 0
# MERGED-NEXT: IsUnaligned: 0
# MERGED-NEXT: IsRestrict: 0
# MERGED-NEXT: IsThisPtr&: 0
# MERGED-NEXT: IsThisPtr&&: 0
# MERGED-NEXT: SizeOf: 8
# MERGED-NEXT: }
# MERGED-NEXT: ]
# MERGED-NEXT: MergedIDStream [
# MERGED-NEXT: ]
--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_AMD64
Characteristics: [ ]
sections:
- Name: '.debug$T'
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
Alignment: 1
Types:
- Kind: LF_PROCEDURE
Procedure:
ReturnType: 3
CallConv: NearC
Options: [ None ]
ParameterCount: 0
ArgumentList: 4097
- Kind: LF_ARGLIST
ArgList:
ArgIndices: [ ]
- Kind: LF_POINTER
Pointer:
ReferentType: 4099
Attrs: 66572
- Kind: LF_POINTER
Pointer:
ReferentType: 4100
Attrs: 66572
- Kind: LF_POINTER
Pointer:
ReferentType: 4101
Attrs: 66572
- Kind: LF_MODIFIER
Modifier:
ModifiedType: 3
Modifiers: [ None, Const, Volatile ]
- Kind: LF_POINTER
Pointer:
ReferentType: 4098
Attrs: 66572
symbols:
...