• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Test that the native PDB reader can enumerate the enum types.  The output
2; being checked against is golden output generated by llvm-pdbutil without
3; the -native flag.  Then we check that we generate the same output.
4; Unfortunately since we generate a slightly different (albeit correct)
5; class / parent hierarchy, if you re-generate this file you will need to
6; actually use the output from llvm-pdbutil *with* the -native flag, but
7; before "blessing" it, manually diff against the golden output from
8; llvm-pdbutil without the -native flag and verifying that there are no
9; substantive differences aside from the various symbol ids.
10
11; RUN: llvm-pdbutil pretty -native -enums %p/../Inputs/every-enum.pdb \
12; RUN:   | FileCheck -check-prefix=ENUMS %s
13; RUN: llvm-pdbutil diadump -hierarchy -native -enums %p/../Inputs/every-enum.pdb \
14; RUN:   | FileCheck -check-prefix=DUMP %s
15
16
17ENUMS: enum I8 : char {
18ENUMS:   I8A = -128
19ENUMS:   I8B = 0
20ENUMS:   I8C = 127
21ENUMS: }
22ENUMS: enum I16 : short {
23ENUMS:   I16A = -32768
24ENUMS:   I16B = 0
25ENUMS:   I16C = 32767
26ENUMS: }
27ENUMS: enum I32 {
28ENUMS:   I32A = -2147483648
29ENUMS:   I32B = 0
30ENUMS:   I32C = 2147483647
31ENUMS: }
32ENUMS: enum I64 : __int64 {
33ENUMS:   I64A = -9223372036854775808
34ENUMS:   I64B = 0
35ENUMS:   I64C = 9223372036854775807
36ENUMS: }
37ENUMS: enum U8 : unsigned char {
38ENUMS:   U8A = 0
39ENUMS:   U8B = 255
40ENUMS: }
41ENUMS: enum U16 : unsigned short {
42ENUMS:   U16A = 0
43ENUMS:   U16B = 65535
44ENUMS: }
45ENUMS: enum U32 : unsigned int {
46ENUMS:   U32A = 0
47ENUMS:   U32B = 4294967295
48ENUMS: }
49ENUMS: enum U64 : unsigned __int64 {
50ENUMS:   U64A = 0
51; FIXME: This should be UINT64_MAX.  Is the compiler encoding it wrong or
52; are we decoding it wrong?
53ENUMS:   U64B = 255
54ENUMS: }
55ENUMS: enum Char16 : unsigned short {
56ENUMS:   C16A = 97
57ENUMS:   C16B = 98
58ENUMS: }
59ENUMS: enum Char32 : unsigned int {
60ENUMS:   C32A = 97
61ENUMS:   C32B = 98
62ENUMS: }
63ENUMS: enum WChar : unsigned short {
64ENUMS:   WCA = 97
65ENUMS:   WCB = 98
66ENUMS: }
67ENUMS: enum Bool : bool {
68ENUMS:   BA = true
69ENUMS:   BB = false
70ENUMS: }
71ENUMS: enum EC {
72ENUMS:   A = 1
73ENUMS:   B = 2
74ENUMS: }
75ENUMS: enum Struct::Nested {
76ENUMS:   A = 1
77ENUMS:   B = 2
78ENUMS: }
79ENUMS: const volatile enum EC
80
81
82DUMP: {
83DUMP:   symIndexId: 2
84DUMP:   symTag: Enum
85DUMP:   baseType: 2
86DUMP:   lexicalParentId: 0
87DUMP:   name: I8
88DUMP:   typeId: 3
89DUMP:   length: 1
90DUMP:   constructor: 0
91DUMP:   constType: 0
92DUMP:   hasAssignmentOperator: 0
93DUMP:   hasCastOperator: 0
94DUMP:   hasNestedTypes: 0
95DUMP:   overloadedOperator: 0
96DUMP:   isInterfaceUdt: 0
97DUMP:   intrinsic: 0
98DUMP:   nested: 0
99DUMP:   packed: 0
100DUMP:   isRefUdt: 0
101DUMP:   scoped: 0
102DUMP:   unalignedType: 0
103DUMP:   isValueUdt: 0
104DUMP:   volatileType: 0
105DUMP:   {
106DUMP:     symIndexId: 4
107DUMP:     symTag: Data
108DUMP:     classParentId: 2
109DUMP:     lexicalParentId: 0
110DUMP:     name: I8A
111DUMP:     typeId: 3
112DUMP:     dataKind: const
113DUMP:     locationType: constant
114DUMP:     constType: 0
115DUMP:     unalignedType: 0
116DUMP:     volatileType: 0
117DUMP:     value: -128
118DUMP:   }
119DUMP:   {
120DUMP:     symIndexId: 5
121DUMP:     symTag: Data
122DUMP:     classParentId: 2
123DUMP:     lexicalParentId: 0
124DUMP:     name: I8B
125DUMP:     typeId: 3
126DUMP:     dataKind: const
127DUMP:     locationType: constant
128DUMP:     constType: 0
129DUMP:     unalignedType: 0
130DUMP:     volatileType: 0
131DUMP:     value: 0
132DUMP:   }
133DUMP:   {
134DUMP:     symIndexId: 6
135DUMP:     symTag: Data
136DUMP:     classParentId: 2
137DUMP:     lexicalParentId: 0
138DUMP:     name: I8C
139DUMP:     typeId: 3
140DUMP:     dataKind: const
141DUMP:     locationType: constant
142DUMP:     constType: 0
143DUMP:     unalignedType: 0
144DUMP:     volatileType: 0
145DUMP:     value: 127
146DUMP:   }
147DUMP: }
148DUMP: {
149DUMP:   symIndexId: 7
150DUMP:   symTag: Enum
151DUMP:   baseType: 6
152DUMP:   lexicalParentId: 0
153DUMP:   name: I16
154DUMP:   typeId: 8
155DUMP:   length: 2
156DUMP:   constructor: 0
157DUMP:   constType: 0
158DUMP:   hasAssignmentOperator: 0
159DUMP:   hasCastOperator: 0
160DUMP:   hasNestedTypes: 0
161DUMP:   overloadedOperator: 0
162DUMP:   isInterfaceUdt: 0
163DUMP:   intrinsic: 0
164DUMP:   nested: 0
165DUMP:   packed: 0
166DUMP:   isRefUdt: 0
167DUMP:   scoped: 0
168DUMP:   unalignedType: 0
169DUMP:   isValueUdt: 0
170DUMP:   volatileType: 0
171DUMP:   {
172DUMP:     symIndexId: 9
173DUMP:     symTag: Data
174DUMP:     classParentId: 7
175DUMP:     lexicalParentId: 0
176DUMP:     name: I16A
177DUMP:     typeId: 8
178DUMP:     dataKind: const
179DUMP:     locationType: constant
180DUMP:     constType: 0
181DUMP:     unalignedType: 0
182DUMP:     volatileType: 0
183DUMP:     value: -32768
184DUMP:   }
185DUMP:   {
186DUMP:     symIndexId: 10
187DUMP:     symTag: Data
188DUMP:     classParentId: 7
189DUMP:     lexicalParentId: 0
190DUMP:     name: I16B
191DUMP:     typeId: 8
192DUMP:     dataKind: const
193DUMP:     locationType: constant
194DUMP:     constType: 0
195DUMP:     unalignedType: 0
196DUMP:     volatileType: 0
197DUMP:     value: 0
198DUMP:   }
199DUMP:   {
200DUMP:     symIndexId: 11
201DUMP:     symTag: Data
202DUMP:     classParentId: 7
203DUMP:     lexicalParentId: 0
204DUMP:     name: I16C
205DUMP:     typeId: 8
206DUMP:     dataKind: const
207DUMP:     locationType: constant
208DUMP:     constType: 0
209DUMP:     unalignedType: 0
210DUMP:     volatileType: 0
211DUMP:     value: 32767
212DUMP:   }
213DUMP: }
214DUMP: {
215DUMP:   symIndexId: 12
216DUMP:   symTag: Enum
217DUMP:   baseType: 6
218DUMP:   lexicalParentId: 0
219DUMP:   name: I32
220DUMP:   typeId: 13
221DUMP:   length: 4
222DUMP:   constructor: 0
223DUMP:   constType: 0
224DUMP:   hasAssignmentOperator: 0
225DUMP:   hasCastOperator: 0
226DUMP:   hasNestedTypes: 0
227DUMP:   overloadedOperator: 0
228DUMP:   isInterfaceUdt: 0
229DUMP:   intrinsic: 0
230DUMP:   nested: 0
231DUMP:   packed: 0
232DUMP:   isRefUdt: 0
233DUMP:   scoped: 0
234DUMP:   unalignedType: 0
235DUMP:   isValueUdt: 0
236DUMP:   volatileType: 0
237DUMP:   {
238DUMP:     symIndexId: 14
239DUMP:     symTag: Data
240DUMP:     classParentId: 12
241DUMP:     lexicalParentId: 0
242DUMP:     name: I32A
243DUMP:     typeId: 13
244DUMP:     dataKind: const
245DUMP:     locationType: constant
246DUMP:     constType: 0
247DUMP:     unalignedType: 0
248DUMP:     volatileType: 0
249DUMP:     value: -2147483648
250DUMP:   }
251DUMP:   {
252DUMP:     symIndexId: 15
253DUMP:     symTag: Data
254DUMP:     classParentId: 12
255DUMP:     lexicalParentId: 0
256DUMP:     name: I32B
257DUMP:     typeId: 13
258DUMP:     dataKind: const
259DUMP:     locationType: constant
260DUMP:     constType: 0
261DUMP:     unalignedType: 0
262DUMP:     volatileType: 0
263DUMP:     value: 0
264DUMP:   }
265DUMP:   {
266DUMP:     symIndexId: 16
267DUMP:     symTag: Data
268DUMP:     classParentId: 12
269DUMP:     lexicalParentId: 0
270DUMP:     name: I32C
271DUMP:     typeId: 13
272DUMP:     dataKind: const
273DUMP:     locationType: constant
274DUMP:     constType: 0
275DUMP:     unalignedType: 0
276DUMP:     volatileType: 0
277DUMP:     value: 2147483647
278DUMP:   }
279DUMP: }
280DUMP: {
281DUMP:   symIndexId: 17
282DUMP:   symTag: Enum
283DUMP:   baseType: 6
284DUMP:   lexicalParentId: 0
285DUMP:   name: I64
286DUMP:   typeId: 18
287DUMP:   length: 8
288DUMP:   constructor: 0
289DUMP:   constType: 0
290DUMP:   hasAssignmentOperator: 0
291DUMP:   hasCastOperator: 0
292DUMP:   hasNestedTypes: 0
293DUMP:   overloadedOperator: 0
294DUMP:   isInterfaceUdt: 0
295DUMP:   intrinsic: 0
296DUMP:   nested: 0
297DUMP:   packed: 0
298DUMP:   isRefUdt: 0
299DUMP:   scoped: 0
300DUMP:   unalignedType: 0
301DUMP:   isValueUdt: 0
302DUMP:   volatileType: 0
303DUMP:   {
304DUMP:     symIndexId: 19
305DUMP:     symTag: Data
306DUMP:     classParentId: 17
307DUMP:     lexicalParentId: 0
308DUMP:     name: I64A
309DUMP:     typeId: 18
310DUMP:     dataKind: const
311DUMP:     locationType: constant
312DUMP:     constType: 0
313DUMP:     unalignedType: 0
314DUMP:     volatileType: 0
315DUMP:     value: -9223372036854775808
316DUMP:   }
317DUMP:   {
318DUMP:     symIndexId: 20
319DUMP:     symTag: Data
320DUMP:     classParentId: 17
321DUMP:     lexicalParentId: 0
322DUMP:     name: I64B
323DUMP:     typeId: 18
324DUMP:     dataKind: const
325DUMP:     locationType: constant
326DUMP:     constType: 0
327DUMP:     unalignedType: 0
328DUMP:     volatileType: 0
329DUMP:     value: 0
330DUMP:   }
331DUMP:   {
332DUMP:     symIndexId: 21
333DUMP:     symTag: Data
334DUMP:     classParentId: 17
335DUMP:     lexicalParentId: 0
336DUMP:     name: I64C
337DUMP:     typeId: 18
338DUMP:     dataKind: const
339DUMP:     locationType: constant
340DUMP:     constType: 0
341DUMP:     unalignedType: 0
342DUMP:     volatileType: 0
343DUMP:     value: 9223372036854775807
344DUMP:   }
345DUMP: }
346DUMP: {
347DUMP:   symIndexId: 22
348DUMP:   symTag: Enum
349DUMP:   baseType: 2
350DUMP:   lexicalParentId: 0
351DUMP:   name: U8
352DUMP:   typeId: 23
353DUMP:   length: 1
354DUMP:   constructor: 0
355DUMP:   constType: 0
356DUMP:   hasAssignmentOperator: 0
357DUMP:   hasCastOperator: 0
358DUMP:   hasNestedTypes: 0
359DUMP:   overloadedOperator: 0
360DUMP:   isInterfaceUdt: 0
361DUMP:   intrinsic: 0
362DUMP:   nested: 0
363DUMP:   packed: 0
364DUMP:   isRefUdt: 0
365DUMP:   scoped: 0
366DUMP:   unalignedType: 0
367DUMP:   isValueUdt: 0
368DUMP:   volatileType: 0
369DUMP:   {
370DUMP:     symIndexId: 24
371DUMP:     symTag: Data
372DUMP:     classParentId: 22
373DUMP:     lexicalParentId: 0
374DUMP:     name: U8A
375DUMP:     typeId: 23
376DUMP:     dataKind: const
377DUMP:     locationType: constant
378DUMP:     constType: 0
379DUMP:     unalignedType: 0
380DUMP:     volatileType: 0
381DUMP:     value: 0
382DUMP:   }
383DUMP:   {
384DUMP:     symIndexId: 25
385DUMP:     symTag: Data
386DUMP:     classParentId: 22
387DUMP:     lexicalParentId: 0
388DUMP:     name: U8B
389DUMP:     typeId: 23
390DUMP:     dataKind: const
391DUMP:     locationType: constant
392DUMP:     constType: 0
393DUMP:     unalignedType: 0
394DUMP:     volatileType: 0
395DUMP:     value: 255
396DUMP:   }
397DUMP: }
398DUMP: {
399DUMP:   symIndexId: 26
400DUMP:   symTag: Enum
401DUMP:   baseType: 7
402DUMP:   lexicalParentId: 0
403DUMP:   name: U16
404DUMP:   typeId: 27
405DUMP:   length: 2
406DUMP:   constructor: 0
407DUMP:   constType: 0
408DUMP:   hasAssignmentOperator: 0
409DUMP:   hasCastOperator: 0
410DUMP:   hasNestedTypes: 0
411DUMP:   overloadedOperator: 0
412DUMP:   isInterfaceUdt: 0
413DUMP:   intrinsic: 0
414DUMP:   nested: 0
415DUMP:   packed: 0
416DUMP:   isRefUdt: 0
417DUMP:   scoped: 0
418DUMP:   unalignedType: 0
419DUMP:   isValueUdt: 0
420DUMP:   volatileType: 0
421DUMP:   {
422DUMP:     symIndexId: 28
423DUMP:     symTag: Data
424DUMP:     classParentId: 26
425DUMP:     lexicalParentId: 0
426DUMP:     name: U16A
427DUMP:     typeId: 27
428DUMP:     dataKind: const
429DUMP:     locationType: constant
430DUMP:     constType: 0
431DUMP:     unalignedType: 0
432DUMP:     volatileType: 0
433DUMP:     value: 0
434DUMP:   }
435DUMP:   {
436DUMP:     symIndexId: 29
437DUMP:     symTag: Data
438DUMP:     classParentId: 26
439DUMP:     lexicalParentId: 0
440DUMP:     name: U16B
441DUMP:     typeId: 27
442DUMP:     dataKind: const
443DUMP:     locationType: constant
444DUMP:     constType: 0
445DUMP:     unalignedType: 0
446DUMP:     volatileType: 0
447DUMP:     value: 65535
448DUMP:   }
449DUMP: }
450DUMP: {
451DUMP:   symIndexId: 30
452DUMP:   symTag: Enum
453DUMP:   baseType: 7
454DUMP:   lexicalParentId: 0
455DUMP:   name: U32
456DUMP:   typeId: 31
457DUMP:   length: 4
458DUMP:   constructor: 0
459DUMP:   constType: 0
460DUMP:   hasAssignmentOperator: 0
461DUMP:   hasCastOperator: 0
462DUMP:   hasNestedTypes: 0
463DUMP:   overloadedOperator: 0
464DUMP:   isInterfaceUdt: 0
465DUMP:   intrinsic: 0
466DUMP:   nested: 0
467DUMP:   packed: 0
468DUMP:   isRefUdt: 0
469DUMP:   scoped: 0
470DUMP:   unalignedType: 0
471DUMP:   isValueUdt: 0
472DUMP:   volatileType: 0
473DUMP:   {
474DUMP:     symIndexId: 32
475DUMP:     symTag: Data
476DUMP:     classParentId: 30
477DUMP:     lexicalParentId: 0
478DUMP:     name: U32A
479DUMP:     typeId: 31
480DUMP:     dataKind: const
481DUMP:     locationType: constant
482DUMP:     constType: 0
483DUMP:     unalignedType: 0
484DUMP:     volatileType: 0
485DUMP:     value: 0
486DUMP:   }
487DUMP:   {
488DUMP:     symIndexId: 33
489DUMP:     symTag: Data
490DUMP:     classParentId: 30
491DUMP:     lexicalParentId: 0
492DUMP:     name: U32B
493DUMP:     typeId: 31
494DUMP:     dataKind: const
495DUMP:     locationType: constant
496DUMP:     constType: 0
497DUMP:     unalignedType: 0
498DUMP:     volatileType: 0
499DUMP:     value: 4294967295
500DUMP:   }
501DUMP: }
502DUMP: {
503DUMP:   symIndexId: 34
504DUMP:   symTag: Enum
505DUMP:   baseType: 7
506DUMP:   lexicalParentId: 0
507DUMP:   name: U64
508DUMP:   typeId: 35
509DUMP:   length: 8
510DUMP:   constructor: 0
511DUMP:   constType: 0
512DUMP:   hasAssignmentOperator: 0
513DUMP:   hasCastOperator: 0
514DUMP:   hasNestedTypes: 0
515DUMP:   overloadedOperator: 0
516DUMP:   isInterfaceUdt: 0
517DUMP:   intrinsic: 0
518DUMP:   nested: 0
519DUMP:   packed: 0
520DUMP:   isRefUdt: 0
521DUMP:   scoped: 0
522DUMP:   unalignedType: 0
523DUMP:   isValueUdt: 0
524DUMP:   volatileType: 0
525DUMP:   {
526DUMP:     symIndexId: 36
527DUMP:     symTag: Data
528DUMP:     classParentId: 34
529DUMP:     lexicalParentId: 0
530DUMP:     name: U64A
531DUMP:     typeId: 35
532DUMP:     dataKind: const
533DUMP:     locationType: constant
534DUMP:     constType: 0
535DUMP:     unalignedType: 0
536DUMP:     volatileType: 0
537DUMP:     value: 0
538DUMP:   }
539DUMP:   {
540DUMP:     symIndexId: 37
541DUMP:     symTag: Data
542DUMP:     classParentId: 34
543DUMP:     lexicalParentId: 0
544DUMP:     name: U64B
545DUMP:     typeId: 35
546DUMP:     dataKind: const
547DUMP:     locationType: constant
548DUMP:     constType: 0
549DUMP:     unalignedType: 0
550DUMP:     volatileType: 0
551DUMP:     value: 255
552DUMP:   }
553DUMP: }
554DUMP: {
555DUMP:   symIndexId: 38
556DUMP:   symTag: Enum
557DUMP:   baseType: 7
558DUMP:   lexicalParentId: 0
559DUMP:   name: Char16
560DUMP:   typeId: 27
561DUMP:   length: 2
562DUMP:   constructor: 0
563DUMP:   constType: 0
564DUMP:   hasAssignmentOperator: 0
565DUMP:   hasCastOperator: 0
566DUMP:   hasNestedTypes: 0
567DUMP:   overloadedOperator: 0
568DUMP:   isInterfaceUdt: 0
569DUMP:   intrinsic: 0
570DUMP:   nested: 0
571DUMP:   packed: 0
572DUMP:   isRefUdt: 0
573DUMP:   scoped: 0
574DUMP:   unalignedType: 0
575DUMP:   isValueUdt: 0
576DUMP:   volatileType: 0
577DUMP:   {
578DUMP:     symIndexId: 39
579DUMP:     symTag: Data
580DUMP:     classParentId: 38
581DUMP:     lexicalParentId: 0
582DUMP:     name: C16A
583DUMP:     typeId: 27
584DUMP:     dataKind: const
585DUMP:     locationType: constant
586DUMP:     constType: 0
587DUMP:     unalignedType: 0
588DUMP:     volatileType: 0
589DUMP:     value: 97
590DUMP:   }
591DUMP:   {
592DUMP:     symIndexId: 40
593DUMP:     symTag: Data
594DUMP:     classParentId: 38
595DUMP:     lexicalParentId: 0
596DUMP:     name: C16B
597DUMP:     typeId: 27
598DUMP:     dataKind: const
599DUMP:     locationType: constant
600DUMP:     constType: 0
601DUMP:     unalignedType: 0
602DUMP:     volatileType: 0
603DUMP:     value: 98
604DUMP:   }
605DUMP: }
606DUMP: {
607DUMP:   symIndexId: 41
608DUMP:   symTag: Enum
609DUMP:   baseType: 7
610DUMP:   lexicalParentId: 0
611DUMP:   name: Char32
612DUMP:   typeId: 42
613DUMP:   length: 4
614DUMP:   constructor: 0
615DUMP:   constType: 0
616DUMP:   hasAssignmentOperator: 0
617DUMP:   hasCastOperator: 0
618DUMP:   hasNestedTypes: 0
619DUMP:   overloadedOperator: 0
620DUMP:   isInterfaceUdt: 0
621DUMP:   intrinsic: 0
622DUMP:   nested: 0
623DUMP:   packed: 0
624DUMP:   isRefUdt: 0
625DUMP:   scoped: 0
626DUMP:   unalignedType: 0
627DUMP:   isValueUdt: 0
628DUMP:   volatileType: 0
629DUMP:   {
630DUMP:     symIndexId: 43
631DUMP:     symTag: Data
632DUMP:     classParentId: 41
633DUMP:     lexicalParentId: 0
634DUMP:     name: C32A
635DUMP:     typeId: 42
636DUMP:     dataKind: const
637DUMP:     locationType: constant
638DUMP:     constType: 0
639DUMP:     unalignedType: 0
640DUMP:     volatileType: 0
641DUMP:     value: 97
642DUMP:   }
643DUMP:   {
644DUMP:     symIndexId: 44
645DUMP:     symTag: Data
646DUMP:     classParentId: 41
647DUMP:     lexicalParentId: 0
648DUMP:     name: C32B
649DUMP:     typeId: 42
650DUMP:     dataKind: const
651DUMP:     locationType: constant
652DUMP:     constType: 0
653DUMP:     unalignedType: 0
654DUMP:     volatileType: 0
655DUMP:     value: 98
656DUMP:   }
657DUMP: }
658DUMP: {
659DUMP:   symIndexId: 45
660DUMP:   symTag: Enum
661DUMP:   baseType: 7
662DUMP:   lexicalParentId: 0
663DUMP:   name: WChar
664DUMP:   typeId: 27
665DUMP:   length: 2
666DUMP:   constructor: 0
667DUMP:   constType: 0
668DUMP:   hasAssignmentOperator: 0
669DUMP:   hasCastOperator: 0
670DUMP:   hasNestedTypes: 0
671DUMP:   overloadedOperator: 0
672DUMP:   isInterfaceUdt: 0
673DUMP:   intrinsic: 0
674DUMP:   nested: 0
675DUMP:   packed: 0
676DUMP:   isRefUdt: 0
677DUMP:   scoped: 0
678DUMP:   unalignedType: 0
679DUMP:   isValueUdt: 0
680DUMP:   volatileType: 0
681DUMP:   {
682DUMP:     symIndexId: 46
683DUMP:     symTag: Data
684DUMP:     classParentId: 45
685DUMP:     lexicalParentId: 0
686DUMP:     name: WCA
687DUMP:     typeId: 27
688DUMP:     dataKind: const
689DUMP:     locationType: constant
690DUMP:     constType: 0
691DUMP:     unalignedType: 0
692DUMP:     volatileType: 0
693DUMP:     value: 97
694DUMP:   }
695DUMP:   {
696DUMP:     symIndexId: 47
697DUMP:     symTag: Data
698DUMP:     classParentId: 45
699DUMP:     lexicalParentId: 0
700DUMP:     name: WCB
701DUMP:     typeId: 27
702DUMP:     dataKind: const
703DUMP:     locationType: constant
704DUMP:     constType: 0
705DUMP:     unalignedType: 0
706DUMP:     volatileType: 0
707DUMP:     value: 98
708DUMP:   }
709DUMP: }
710DUMP: {
711DUMP:   symIndexId: 48
712DUMP:   symTag: Enum
713DUMP:   baseType: 10
714DUMP:   lexicalParentId: 0
715DUMP:   name: Bool
716DUMP:   typeId: 49
717DUMP:   length: 1
718DUMP:   constructor: 0
719DUMP:   constType: 0
720DUMP:   hasAssignmentOperator: 0
721DUMP:   hasCastOperator: 0
722DUMP:   hasNestedTypes: 0
723DUMP:   overloadedOperator: 0
724DUMP:   isInterfaceUdt: 0
725DUMP:   intrinsic: 0
726DUMP:   nested: 0
727DUMP:   packed: 0
728DUMP:   isRefUdt: 0
729DUMP:   scoped: 0
730DUMP:   unalignedType: 0
731DUMP:   isValueUdt: 0
732DUMP:   volatileType: 0
733DUMP:   {
734DUMP:     symIndexId: 50
735DUMP:     symTag: Data
736DUMP:     classParentId: 48
737DUMP:     lexicalParentId: 0
738DUMP:     name: BA
739DUMP:     typeId: 49
740DUMP:     dataKind: const
741DUMP:     locationType: constant
742DUMP:     constType: 0
743DUMP:     unalignedType: 0
744DUMP:     volatileType: 0
745DUMP:     value: true
746DUMP:   }
747DUMP:   {
748DUMP:     symIndexId: 51
749DUMP:     symTag: Data
750DUMP:     classParentId: 48
751DUMP:     lexicalParentId: 0
752DUMP:     name: BB
753DUMP:     typeId: 49
754DUMP:     dataKind: const
755DUMP:     locationType: constant
756DUMP:     constType: 0
757DUMP:     unalignedType: 0
758DUMP:     volatileType: 0
759DUMP:     value: false
760DUMP:   }
761DUMP: {
762DUMP:   symIndexId: 113
763DUMP:   symTag: Enum
764DUMP:   baseType: 6
765DUMP:   lexicalParentId: 0
766DUMP:   name: EC
767DUMP:   typeId: 13
768DUMP:   length: 4
769DUMP:   constructor: 0
770DUMP:   constType: 0
771DUMP:   hasAssignmentOperator: 0
772DUMP:   hasCastOperator: 0
773DUMP:   hasNestedTypes: 0
774DUMP:   overloadedOperator: 0
775DUMP:   isInterfaceUdt: 0
776DUMP:   intrinsic: 0
777DUMP:   nested: 0
778DUMP:   packed: 0
779DUMP:   isRefUdt: 0
780DUMP:   scoped: 0
781DUMP:   unalignedType: 0
782DUMP:   isValueUdt: 0
783DUMP:   volatileType: 0
784DUMP:   {
785DUMP:     symIndexId: 114
786DUMP:     symTag: Data
787DUMP:     classParentId: 113
788DUMP:     lexicalParentId: 0
789DUMP:     name: A
790DUMP:     typeId: 13
791DUMP:     dataKind: const
792DUMP:     locationType: constant
793DUMP:     constType: 0
794DUMP:     unalignedType: 0
795DUMP:     volatileType: 0
796DUMP:     value: 1
797DUMP:   }
798DUMP:   {
799DUMP:     symIndexId: 115
800DUMP:     symTag: Data
801DUMP:     classParentId: 113
802DUMP:     lexicalParentId: 0
803DUMP:     name: B
804DUMP:     typeId: 13
805DUMP:     dataKind: const
806DUMP:     locationType: constant
807DUMP:     constType: 0
808DUMP:     unalignedType: 0
809DUMP:     volatileType: 0
810DUMP:     value: 2
811DUMP:   }
812DUMP: }
813DUMP: {
814DUMP:   symIndexId: 116
815DUMP:   symTag: Enum
816DUMP:   baseType: 6
817DUMP:   lexicalParentId: 0
818DUMP:   name: Struct::Nested
819DUMP:   typeId: 13
820DUMP:   length: 4
821DUMP:   constructor: 0
822DUMP:   constType: 0
823DUMP:   hasAssignmentOperator: 0
824DUMP:   hasCastOperator: 0
825DUMP:   hasNestedTypes: 0
826DUMP:   overloadedOperator: 0
827DUMP:   isInterfaceUdt: 0
828DUMP:   intrinsic: 0
829DUMP:   nested: 1
830DUMP:   packed: 0
831DUMP:   isRefUdt: 0
832DUMP:   scoped: 0
833DUMP:   unalignedType: 0
834DUMP:   isValueUdt: 0
835DUMP:   volatileType: 0
836DUMP:   {
837DUMP:     symIndexId: 114
838DUMP:     symTag: Data
839DUMP:     classParentId: 113
840DUMP:     lexicalParentId: 0
841DUMP:     name: A
842DUMP:     typeId: 13
843DUMP:     dataKind: const
844DUMP:     locationType: constant
845DUMP:     constType: 0
846DUMP:     unalignedType: 0
847DUMP:     volatileType: 0
848DUMP:     value: 1
849DUMP:   }
850DUMP:   {
851DUMP:     symIndexId: 115
852DUMP:     symTag: Data
853DUMP:     classParentId: 113
854DUMP:     lexicalParentId: 0
855DUMP:     name: B
856DUMP:     typeId: 13
857DUMP:     dataKind: const
858DUMP:     locationType: constant
859DUMP:     constType: 0
860DUMP:     unalignedType: 0
861DUMP:     volatileType: 0
862DUMP:     value: 2
863DUMP:   }
864DUMP: }
865DUMP: {
866DUMP:   symIndexId: 117
867DUMP:   symTag: Enum
868DUMP:   baseType: 6
869DUMP:   lexicalParentId: 0
870DUMP:   name: EC
871DUMP:   typeId: 13
872DUMP:   unmodifiedTypeId: 113
873DUMP:   length: 4
874DUMP:   constructor: 0
875DUMP:   constType: 1
876DUMP:   hasAssignmentOperator: 0
877DUMP:   hasCastOperator: 0
878DUMP:   hasNestedTypes: 0
879DUMP:   overloadedOperator: 0
880DUMP:   isInterfaceUdt: 0
881DUMP:   intrinsic: 0
882DUMP:   nested: 0
883DUMP:   packed: 0
884DUMP:   isRefUdt: 0
885DUMP:   scoped: 0
886DUMP:   unalignedType: 0
887DUMP:   isValueUdt: 0
888DUMP:   volatileType: 1  {
889DUMP:     symIndexId: 114
890DUMP:     symTag: Data
891DUMP:     classParentId: 113
892DUMP:     lexicalParentId: 0
893DUMP:     name: A
894DUMP:     typeId: 13
895DUMP:     dataKind: const
896DUMP:     locationType: constant
897DUMP:     constType: 0
898DUMP:     unalignedType: 0
899DUMP:     volatileType: 0
900DUMP:     value: 1
901DUMP:   }
902DUMP:   {
903DUMP:     symIndexId: 115
904DUMP:     symTag: Data
905DUMP:     classParentId: 113
906DUMP:     lexicalParentId: 0
907DUMP:     name: B
908DUMP:     typeId: 13
909DUMP:     dataKind: const
910DUMP:     locationType: constant
911DUMP:     constType: 0
912DUMP:     unalignedType: 0
913DUMP:     volatileType: 0
914DUMP:     value: 2
915DUMP:   }
916DUMP: }
917