; 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: }