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