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