Files
clang-p2996/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
Zachary Turner c41ce8355f [PDB] Better support for enumerating pointer types.
There were several issues with the previous implementation.

1) There were no tests.
2) We didn't support creating PDBSymbolTypePointer records for
   builtin types since those aren't described by LF_POINTER
   records.
3) We didn't support a wide enough variety of builtin types even
   ignoring pointers.

This patch fixes all of these issues.  In order to add tests,
it's helpful to be able to ignore the symbol index id hierarchy
because it makes the golden output from the DIA version not match
our output, so I've extended the dumper to disable dumping of id
fields.

llvm-svn: 342493
2018-09-18 16:35:05 +00:00

917 lines
20 KiB
Plaintext

; Test that the native PDB reader can enumerate the enum types. The output
; being checked against is golden output generated by llvm-pdbutil without
; the -native flag. Then we check that we generate the same output.
; Unfortunately since we generate a slightly different (albeit correct)
; class / parent hierarchy, if you re-generate this file you will need to
; actually use the output from llvm-pdbutil *with* the -native flag, but
; before "blessing" it, manually diff against the golden output from
; llvm-pdbutil without the -native flag and verifying that there are no
; substantive differences aside from the various symbol ids.
; RUN: llvm-pdbutil pretty -native -enums %p/../Inputs/every-enum.pdb \
; RUN: | FileCheck -check-prefix=ENUMS %s
; RUN: llvm-pdbutil diadump -hierarchy -native -enums %p/../Inputs/every-enum.pdb \
; RUN: | FileCheck -check-prefix=DUMP %s
ENUMS: enum I8 : char {
ENUMS: I8A = -128
ENUMS: I8B = 0
ENUMS: I8C = 127
ENUMS: }
ENUMS: enum I16 : short {
ENUMS: I16A = -32768
ENUMS: I16B = 0
ENUMS: I16C = 32767
ENUMS: }
ENUMS: enum I32 {
ENUMS: I32A = -2147483648
ENUMS: I32B = 0
ENUMS: I32C = 2147483647
ENUMS: }
ENUMS: enum I64 : __int64 {
ENUMS: I64A = -9223372036854775808
ENUMS: I64B = 0
ENUMS: I64C = 9223372036854775807
ENUMS: }
ENUMS: enum U8 : unsigned char {
ENUMS: U8A = 0
ENUMS: U8B = 255
ENUMS: }
ENUMS: enum U16 : unsigned short {
ENUMS: U16A = 0
ENUMS: U16B = 65535
ENUMS: }
ENUMS: enum U32 : unsigned int {
ENUMS: U32A = 0
ENUMS: U32B = 4294967295
ENUMS: }
ENUMS: enum U64 : unsigned __int64 {
ENUMS: U64A = 0
; FIXME: This should be UINT64_MAX. Is the compiler encoding it wrong or
; are we decoding it wrong?
ENUMS: U64B = 255
ENUMS: }
ENUMS: enum Char16 : unsigned short {
ENUMS: C16A = 97
ENUMS: C16B = 98
ENUMS: }
ENUMS: enum Char32 : unsigned int {
ENUMS: C32A = 97
ENUMS: C32B = 98
ENUMS: }
ENUMS: enum WChar : unsigned short {
ENUMS: WCA = 97
ENUMS: WCB = 98
ENUMS: }
ENUMS: enum Bool : bool {
ENUMS: BA = true
ENUMS: BB = false
ENUMS: }
ENUMS: enum EC {
ENUMS: A = 1
ENUMS: B = 2
ENUMS: }
ENUMS: enum Struct::Nested {
ENUMS: A = 1
ENUMS: B = 2
ENUMS: }
ENUMS: const volatile enum EC
DUMP: {
DUMP: symIndexId: 2
DUMP: symTag: Enum
DUMP: baseType: 2
DUMP: lexicalParentId: 0
DUMP: name: I8
DUMP: typeId: 3
DUMP: length: 1
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 4
DUMP: symTag: Data
DUMP: classParentId: 2
DUMP: lexicalParentId: 0
DUMP: name: I8A
DUMP: typeId: 3
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: -128
DUMP: }
DUMP: {
DUMP: symIndexId: 5
DUMP: symTag: Data
DUMP: classParentId: 2
DUMP: lexicalParentId: 0
DUMP: name: I8B
DUMP: typeId: 3
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 6
DUMP: symTag: Data
DUMP: classParentId: 2
DUMP: lexicalParentId: 0
DUMP: name: I8C
DUMP: typeId: 3
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 127
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 7
DUMP: symTag: Enum
DUMP: baseType: 6
DUMP: lexicalParentId: 0
DUMP: name: I16
DUMP: typeId: 8
DUMP: length: 2
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 9
DUMP: symTag: Data
DUMP: classParentId: 7
DUMP: lexicalParentId: 0
DUMP: name: I16A
DUMP: typeId: 8
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: -32768
DUMP: }
DUMP: {
DUMP: symIndexId: 10
DUMP: symTag: Data
DUMP: classParentId: 7
DUMP: lexicalParentId: 0
DUMP: name: I16B
DUMP: typeId: 8
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 11
DUMP: symTag: Data
DUMP: classParentId: 7
DUMP: lexicalParentId: 0
DUMP: name: I16C
DUMP: typeId: 8
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 32767
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 12
DUMP: symTag: Enum
DUMP: baseType: 6
DUMP: lexicalParentId: 0
DUMP: name: I32
DUMP: typeId: 13
DUMP: length: 4
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 14
DUMP: symTag: Data
DUMP: classParentId: 12
DUMP: lexicalParentId: 0
DUMP: name: I32A
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: -2147483648
DUMP: }
DUMP: {
DUMP: symIndexId: 15
DUMP: symTag: Data
DUMP: classParentId: 12
DUMP: lexicalParentId: 0
DUMP: name: I32B
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 16
DUMP: symTag: Data
DUMP: classParentId: 12
DUMP: lexicalParentId: 0
DUMP: name: I32C
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 2147483647
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 17
DUMP: symTag: Enum
DUMP: baseType: 6
DUMP: lexicalParentId: 0
DUMP: name: I64
DUMP: typeId: 18
DUMP: length: 8
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 19
DUMP: symTag: Data
DUMP: classParentId: 17
DUMP: lexicalParentId: 0
DUMP: name: I64A
DUMP: typeId: 18
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: -9223372036854775808
DUMP: }
DUMP: {
DUMP: symIndexId: 20
DUMP: symTag: Data
DUMP: classParentId: 17
DUMP: lexicalParentId: 0
DUMP: name: I64B
DUMP: typeId: 18
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 21
DUMP: symTag: Data
DUMP: classParentId: 17
DUMP: lexicalParentId: 0
DUMP: name: I64C
DUMP: typeId: 18
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 9223372036854775807
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 22
DUMP: symTag: Enum
DUMP: baseType: 2
DUMP: lexicalParentId: 0
DUMP: name: U8
DUMP: typeId: 23
DUMP: length: 1
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 24
DUMP: symTag: Data
DUMP: classParentId: 22
DUMP: lexicalParentId: 0
DUMP: name: U8A
DUMP: typeId: 23
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 25
DUMP: symTag: Data
DUMP: classParentId: 22
DUMP: lexicalParentId: 0
DUMP: name: U8B
DUMP: typeId: 23
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 255
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 26
DUMP: symTag: Enum
DUMP: baseType: 7
DUMP: lexicalParentId: 0
DUMP: name: U16
DUMP: typeId: 27
DUMP: length: 2
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 28
DUMP: symTag: Data
DUMP: classParentId: 26
DUMP: lexicalParentId: 0
DUMP: name: U16A
DUMP: typeId: 27
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 29
DUMP: symTag: Data
DUMP: classParentId: 26
DUMP: lexicalParentId: 0
DUMP: name: U16B
DUMP: typeId: 27
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 65535
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 30
DUMP: symTag: Enum
DUMP: baseType: 7
DUMP: lexicalParentId: 0
DUMP: name: U32
DUMP: typeId: 31
DUMP: length: 4
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 32
DUMP: symTag: Data
DUMP: classParentId: 30
DUMP: lexicalParentId: 0
DUMP: name: U32A
DUMP: typeId: 31
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 33
DUMP: symTag: Data
DUMP: classParentId: 30
DUMP: lexicalParentId: 0
DUMP: name: U32B
DUMP: typeId: 31
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 4294967295
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 34
DUMP: symTag: Enum
DUMP: baseType: 7
DUMP: lexicalParentId: 0
DUMP: name: U64
DUMP: typeId: 35
DUMP: length: 8
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 36
DUMP: symTag: Data
DUMP: classParentId: 34
DUMP: lexicalParentId: 0
DUMP: name: U64A
DUMP: typeId: 35
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 0
DUMP: }
DUMP: {
DUMP: symIndexId: 37
DUMP: symTag: Data
DUMP: classParentId: 34
DUMP: lexicalParentId: 0
DUMP: name: U64B
DUMP: typeId: 35
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 255
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 38
DUMP: symTag: Enum
DUMP: baseType: 7
DUMP: lexicalParentId: 0
DUMP: name: Char16
DUMP: typeId: 27
DUMP: length: 2
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 39
DUMP: symTag: Data
DUMP: classParentId: 38
DUMP: lexicalParentId: 0
DUMP: name: C16A
DUMP: typeId: 27
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 97
DUMP: }
DUMP: {
DUMP: symIndexId: 40
DUMP: symTag: Data
DUMP: classParentId: 38
DUMP: lexicalParentId: 0
DUMP: name: C16B
DUMP: typeId: 27
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 98
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 41
DUMP: symTag: Enum
DUMP: baseType: 7
DUMP: lexicalParentId: 0
DUMP: name: Char32
DUMP: typeId: 42
DUMP: length: 4
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 43
DUMP: symTag: Data
DUMP: classParentId: 41
DUMP: lexicalParentId: 0
DUMP: name: C32A
DUMP: typeId: 42
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 97
DUMP: }
DUMP: {
DUMP: symIndexId: 44
DUMP: symTag: Data
DUMP: classParentId: 41
DUMP: lexicalParentId: 0
DUMP: name: C32B
DUMP: typeId: 42
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 98
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 45
DUMP: symTag: Enum
DUMP: baseType: 7
DUMP: lexicalParentId: 0
DUMP: name: WChar
DUMP: typeId: 27
DUMP: length: 2
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 46
DUMP: symTag: Data
DUMP: classParentId: 45
DUMP: lexicalParentId: 0
DUMP: name: WCA
DUMP: typeId: 27
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 97
DUMP: }
DUMP: {
DUMP: symIndexId: 47
DUMP: symTag: Data
DUMP: classParentId: 45
DUMP: lexicalParentId: 0
DUMP: name: WCB
DUMP: typeId: 27
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 98
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 48
DUMP: symTag: Enum
DUMP: baseType: 10
DUMP: lexicalParentId: 0
DUMP: name: Bool
DUMP: typeId: 49
DUMP: length: 1
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 50
DUMP: symTag: Data
DUMP: classParentId: 48
DUMP: lexicalParentId: 0
DUMP: name: BA
DUMP: typeId: 49
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: true
DUMP: }
DUMP: {
DUMP: symIndexId: 51
DUMP: symTag: Data
DUMP: classParentId: 48
DUMP: lexicalParentId: 0
DUMP: name: BB
DUMP: typeId: 49
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: false
DUMP: }
DUMP: {
DUMP: symIndexId: 113
DUMP: symTag: Enum
DUMP: baseType: 6
DUMP: lexicalParentId: 0
DUMP: name: EC
DUMP: typeId: 13
DUMP: length: 4
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 114
DUMP: symTag: Data
DUMP: classParentId: 113
DUMP: lexicalParentId: 0
DUMP: name: A
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 1
DUMP: }
DUMP: {
DUMP: symIndexId: 115
DUMP: symTag: Data
DUMP: classParentId: 113
DUMP: lexicalParentId: 0
DUMP: name: B
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 2
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 116
DUMP: symTag: Enum
DUMP: baseType: 6
DUMP: lexicalParentId: 0
DUMP: name: Struct::Nested
DUMP: typeId: 13
DUMP: length: 4
DUMP: constructor: 0
DUMP: constType: 0
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 1
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 0
DUMP: {
DUMP: symIndexId: 114
DUMP: symTag: Data
DUMP: classParentId: 113
DUMP: lexicalParentId: 0
DUMP: name: A
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 1
DUMP: }
DUMP: {
DUMP: symIndexId: 115
DUMP: symTag: Data
DUMP: classParentId: 113
DUMP: lexicalParentId: 0
DUMP: name: B
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 2
DUMP: }
DUMP: }
DUMP: {
DUMP: symIndexId: 117
DUMP: symTag: Enum
DUMP: baseType: 6
DUMP: lexicalParentId: 0
DUMP: name: EC
DUMP: typeId: 13
DUMP: unmodifiedTypeId: 113
DUMP: length: 4
DUMP: constructor: 0
DUMP: constType: 1
DUMP: hasAssignmentOperator: 0
DUMP: hasCastOperator: 0
DUMP: hasNestedTypes: 0
DUMP: overloadedOperator: 0
DUMP: isInterfaceUdt: 0
DUMP: intrinsic: 0
DUMP: nested: 0
DUMP: packed: 0
DUMP: isRefUdt: 0
DUMP: scoped: 0
DUMP: unalignedType: 0
DUMP: isValueUdt: 0
DUMP: volatileType: 1 {
DUMP: symIndexId: 114
DUMP: symTag: Data
DUMP: classParentId: 113
DUMP: lexicalParentId: 0
DUMP: name: A
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 1
DUMP: }
DUMP: {
DUMP: symIndexId: 115
DUMP: symTag: Data
DUMP: classParentId: 113
DUMP: lexicalParentId: 0
DUMP: name: B
DUMP: typeId: 13
DUMP: dataKind: const
DUMP: locationType: constant
DUMP: constType: 0
DUMP: unalignedType: 0
DUMP: volatileType: 0
DUMP: value: 2
DUMP: }
DUMP: }