xref: /llvm-project/llvm/test/DebugInfo/PDB/Native/pdb-native-udts.test (revision 355ffb0032182e74f64349dc7e4b941147bac2a2)
1*355ffb00SZachary Turner; RUN: llvm-pdbutil pretty -native -classes %p/../Inputs/every-class.pdb \
2*355ffb00SZachary Turner; RUN:     | FileCheck -check-prefix=PRETTY %s
3*355ffb00SZachary Turner
4*355ffb00SZachary Turner; RUN: llvm-pdbutil diadump -native -udts %p/../Inputs/every-class.pdb \
5*355ffb00SZachary Turner; RUN:     | FileCheck -check-prefix=DUMP %s
6*355ffb00SZachary Turner
7*355ffb00SZachary Turner
8*355ffb00SZachary TurnerPRETTY: struct main::__l2::<unnamed-type-Anonymous> [sizeof = 1]
9*355ffb00SZachary TurnerPRETTY: struct main::__l2::Scoped [sizeof = 1]
10*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::event_sourceAttribute [sizeof = 12]
11*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::helper_attributes::v1_alttypeAttribute [sizeof = 4]
12*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::helper_attributes::usageAttribute [sizeof = 4]
13*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::threadingAttribute [sizeof = 4]
14*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::aggregatableAttribute [sizeof = 4]
15*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::event_receiverAttribute [sizeof = 8]
16*355ffb00SZachary TurnerPRETTY: struct __vc_attributes::moduleAttribute [sizeof = 96]
17*355ffb00SZachary TurnerPRETTY: struct Nested [sizeof = 1]
18*355ffb00SZachary TurnerPRETTY: struct Nested::F [sizeof = 1]
19*355ffb00SZachary TurnerPRETTY: struct Constructor [sizeof = 1]
20*355ffb00SZachary TurnerPRETTY: class Class [sizeof = 1]
21*355ffb00SZachary TurnerPRETTY: union Union [sizeof = 1]
22*355ffb00SZachary TurnerPRETTY: struct Operator [sizeof = 1]
23*355ffb00SZachary TurnerPRETTY: struct Cast [sizeof = 1]
24*355ffb00SZachary TurnerPRETTY: struct Nothing [sizeof = 1]
25*355ffb00SZachary TurnerPRETTY: struct Assignment [sizeof = 1]
26*355ffb00SZachary TurnerPRETTY: const struct Nothing
27*355ffb00SZachary TurnerPRETTY: volatile struct Nothing
28*355ffb00SZachary TurnerPRETTY: const volatile struct Nothing
29*355ffb00SZachary TurnerPRETTY: unaligned struct Nothing
30*355ffb00SZachary Turner
31*355ffb00SZachary Turner; DUMP:      {
32*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 2
33*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
34*355ffb00SZachary Turner; DUMP-NEXT:   name: main::__l2::<unnamed-type-Anonymous>
35*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
36*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
37*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
38*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
39*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
40*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
41*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
42*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
43*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
44*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
45*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
46*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
47*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
48*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
49*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 1
50*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
51*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
52*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
53*355ffb00SZachary Turner; DUMP-NEXT: }
54*355ffb00SZachary Turner; DUMP-NEXT: {
55*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 4
56*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
57*355ffb00SZachary Turner; DUMP-NEXT:   name: main::__l2::Scoped
58*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
59*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
60*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
61*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
62*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
63*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
64*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
65*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
66*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
67*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
68*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
69*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
70*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
71*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
72*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 1
73*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
74*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
75*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
76*355ffb00SZachary Turner; DUMP-NEXT: }
77*355ffb00SZachary Turner; DUMP-NEXT: {
78*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 5
79*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
80*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::event_sourceAttribute
81*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
82*355ffb00SZachary Turner; DUMP-NEXT:   length: 12
83*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
84*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
85*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
86*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
87*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
88*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
89*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
90*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
91*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
92*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
93*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
94*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
95*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
96*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
97*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
98*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
99*355ffb00SZachary Turner; DUMP-NEXT: }
100*355ffb00SZachary Turner; DUMP-NEXT: {
101*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 6
102*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
103*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::helper_attributes::v1_alttypeAttribute
104*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
105*355ffb00SZachary Turner; DUMP-NEXT:   length: 4
106*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
107*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
108*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
109*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
110*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
111*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
112*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
113*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
114*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
115*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
116*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
117*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
118*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
119*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
120*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
121*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
122*355ffb00SZachary Turner; DUMP-NEXT: }
123*355ffb00SZachary Turner; DUMP-NEXT: {
124*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 7
125*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
126*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::helper_attributes::usageAttribute
127*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
128*355ffb00SZachary Turner; DUMP-NEXT:   length: 4
129*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
130*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
131*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
132*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
133*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
134*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
135*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
136*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
137*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
138*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
139*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
140*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
141*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
142*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
143*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
144*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
145*355ffb00SZachary Turner; DUMP-NEXT: }
146*355ffb00SZachary Turner; DUMP-NEXT: {
147*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 8
148*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
149*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::threadingAttribute
150*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
151*355ffb00SZachary Turner; DUMP-NEXT:   length: 4
152*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
153*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
154*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
155*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
156*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
157*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
158*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
159*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
160*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
161*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
162*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
163*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
164*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
165*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
166*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
167*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
168*355ffb00SZachary Turner; DUMP-NEXT: }
169*355ffb00SZachary Turner; DUMP-NEXT: {
170*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 9
171*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
172*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::aggregatableAttribute
173*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
174*355ffb00SZachary Turner; DUMP-NEXT:   length: 4
175*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
176*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
177*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
178*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
179*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
180*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
181*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
182*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
183*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
184*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
185*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
186*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
187*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
188*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
189*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
190*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
191*355ffb00SZachary Turner; DUMP-NEXT: }
192*355ffb00SZachary Turner; DUMP-NEXT: {
193*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 10
194*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
195*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::event_receiverAttribute
196*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
197*355ffb00SZachary Turner; DUMP-NEXT:   length: 8
198*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
199*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
200*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
201*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
202*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
203*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
204*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
205*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
206*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
207*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
208*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
209*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
210*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
211*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
212*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
213*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
214*355ffb00SZachary Turner; DUMP-NEXT: }
215*355ffb00SZachary Turner; DUMP-NEXT: {
216*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 11
217*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
218*355ffb00SZachary Turner; DUMP-NEXT:   name: __vc_attributes::moduleAttribute
219*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
220*355ffb00SZachary Turner; DUMP-NEXT:   length: 96
221*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
222*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
223*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
224*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
225*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
226*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
227*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
228*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
229*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
230*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
231*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
232*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
233*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
234*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
235*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
236*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
237*355ffb00SZachary Turner; DUMP-NEXT: }
238*355ffb00SZachary Turner; DUMP-NEXT: {
239*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 12
240*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
241*355ffb00SZachary Turner; DUMP-NEXT:   name: Nested
242*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
243*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
244*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
245*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
246*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
247*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
248*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
249*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 1
250*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
251*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
252*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
253*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
254*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
255*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
256*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
257*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
258*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
259*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
260*355ffb00SZachary Turner; DUMP-NEXT: }
261*355ffb00SZachary Turner; DUMP-NEXT: {
262*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 13
263*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
264*355ffb00SZachary Turner; DUMP-NEXT:   name: Nested::F
265*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
266*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
267*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
268*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
269*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
270*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
271*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
272*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
273*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
274*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
275*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
276*355ffb00SZachary Turner; DUMP-NEXT:   nested: 1
277*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
278*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
279*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
280*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
281*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
282*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
283*355ffb00SZachary Turner; DUMP-NEXT: }
284*355ffb00SZachary Turner; DUMP-NEXT: {
285*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 14
286*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
287*355ffb00SZachary Turner; DUMP-NEXT:   name: Constructor
288*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
289*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
290*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
291*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 1
292*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
293*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
294*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
295*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
296*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
297*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
298*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
299*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
300*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
301*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
302*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
303*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
304*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
305*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
306*355ffb00SZachary Turner; DUMP-NEXT: }
307*355ffb00SZachary Turner; DUMP-NEXT: {
308*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 15
309*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
310*355ffb00SZachary Turner; DUMP-NEXT:   name: Class
311*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
312*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
313*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: class
314*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
315*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
316*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
317*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
318*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
319*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
320*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
321*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
322*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
323*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
324*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
325*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
326*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
327*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
328*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
329*355ffb00SZachary Turner; DUMP-NEXT: }
330*355ffb00SZachary Turner; DUMP-NEXT: {
331*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 16
332*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
333*355ffb00SZachary Turner; DUMP-NEXT:   name: Union
334*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
335*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: union
336*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
337*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
338*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
339*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
340*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
341*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
342*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
343*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
344*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
345*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
346*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
347*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
348*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
349*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
350*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
351*355ffb00SZachary Turner; DUMP-NEXT: }
352*355ffb00SZachary Turner; DUMP-NEXT: {
353*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 17
354*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
355*355ffb00SZachary Turner; DUMP-NEXT:   name: Operator
356*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
357*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
358*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
359*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
360*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
361*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
362*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
363*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
364*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 1
365*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
366*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
367*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
368*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
369*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
370*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
371*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
372*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
373*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
374*355ffb00SZachary Turner; DUMP-NEXT: }
375*355ffb00SZachary Turner; DUMP-NEXT: {
376*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 18
377*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
378*355ffb00SZachary Turner; DUMP-NEXT:   name: Cast
379*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
380*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
381*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
382*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
383*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
384*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
385*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 1
386*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
387*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 1
388*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
389*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
390*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
391*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
392*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
393*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
394*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
395*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
396*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
397*355ffb00SZachary Turner; DUMP-NEXT: }
398*355ffb00SZachary Turner; DUMP-NEXT: {
399*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 19
400*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
401*355ffb00SZachary Turner; DUMP-NEXT:   name: Nothing
402*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
403*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
404*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
405*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
406*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
407*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
408*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
409*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
410*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
411*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
412*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
413*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
414*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
415*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
416*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
417*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
418*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
419*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
420*355ffb00SZachary Turner; DUMP-NEXT: }
421*355ffb00SZachary Turner; DUMP-NEXT: {
422*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 20
423*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
424*355ffb00SZachary Turner; DUMP-NEXT:   name: Assignment
425*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
426*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
427*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
428*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
429*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
430*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 1
431*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
432*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
433*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 1
434*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
435*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
436*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
437*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
438*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
439*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
440*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
441*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
442*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
443*355ffb00SZachary Turner; DUMP-NEXT: }
444*355ffb00SZachary Turner; DUMP-NEXT: {
445*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 21
446*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
447*355ffb00SZachary Turner; DUMP-NEXT:   name: Nothing
448*355ffb00SZachary Turner; DUMP-NEXT:   unmodifiedTypeId: 19
449*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
450*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
451*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
452*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
453*355ffb00SZachary Turner; DUMP-NEXT:   constType: 1
454*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
455*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
456*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
457*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
458*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
459*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
460*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
461*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
462*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
463*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
464*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
465*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
466*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
467*355ffb00SZachary Turner; DUMP-NEXT: }
468*355ffb00SZachary Turner; DUMP-NEXT: {
469*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 22
470*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
471*355ffb00SZachary Turner; DUMP-NEXT:   name: Nothing
472*355ffb00SZachary Turner; DUMP-NEXT:   unmodifiedTypeId: 19
473*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
474*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
475*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
476*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
477*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
478*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
479*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
480*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
481*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
482*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
483*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
484*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
485*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
486*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
487*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
488*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
489*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
490*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 1
491*355ffb00SZachary Turner; DUMP-NEXT: }
492*355ffb00SZachary Turner; DUMP-NEXT: {
493*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 23
494*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
495*355ffb00SZachary Turner; DUMP-NEXT:   name: Nothing
496*355ffb00SZachary Turner; DUMP-NEXT:   unmodifiedTypeId: 19
497*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
498*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
499*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
500*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
501*355ffb00SZachary Turner; DUMP-NEXT:   constType: 1
502*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
503*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
504*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
505*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
506*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
507*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
508*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
509*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
510*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
511*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
512*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 0
513*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
514*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 1
515*355ffb00SZachary Turner; DUMP-NEXT: }
516*355ffb00SZachary Turner; DUMP-NEXT: {
517*355ffb00SZachary Turner; DUMP-NEXT:   symIndexId: 24
518*355ffb00SZachary Turner; DUMP-NEXT:   symTag: UDT
519*355ffb00SZachary Turner; DUMP-NEXT:   name: Nothing
520*355ffb00SZachary Turner; DUMP-NEXT:   unmodifiedTypeId: 19
521*355ffb00SZachary Turner; DUMP-NEXT:   virtualTableShapeId: 3
522*355ffb00SZachary Turner; DUMP-NEXT:   length: 1
523*355ffb00SZachary Turner; DUMP-NEXT:   udtKind: struct
524*355ffb00SZachary Turner; DUMP-NEXT:   constructor: 0
525*355ffb00SZachary Turner; DUMP-NEXT:   constType: 0
526*355ffb00SZachary Turner; DUMP-NEXT:   hasAssignmentOperator: 0
527*355ffb00SZachary Turner; DUMP-NEXT:   hasCastOperator: 0
528*355ffb00SZachary Turner; DUMP-NEXT:   hasNestedTypes: 0
529*355ffb00SZachary Turner; DUMP-NEXT:   overloadedOperator: 0
530*355ffb00SZachary Turner; DUMP-NEXT:   isInterfaceUdt: 0
531*355ffb00SZachary Turner; DUMP-NEXT:   intrinsic: 0
532*355ffb00SZachary Turner; DUMP-NEXT:   nested: 0
533*355ffb00SZachary Turner; DUMP-NEXT:   packed: 0
534*355ffb00SZachary Turner; DUMP-NEXT:   isRefUdt: 0
535*355ffb00SZachary Turner; DUMP-NEXT:   scoped: 0
536*355ffb00SZachary Turner; DUMP-NEXT:   unalignedType: 1
537*355ffb00SZachary Turner; DUMP-NEXT:   isValueUdt: 0
538*355ffb00SZachary Turner; DUMP-NEXT:   volatileType: 0
539*355ffb00SZachary Turner; DUMP-NEXT: }
540