llvm/llvm/test/DebugInfo/PDB/Native/pdb-native-udts.test

; RUN: llvm-pdbutil pretty -native -classes %p/../Inputs/every-class.pdb \
; RUN:     | FileCheck -check-prefix=PRETTY %s

; RUN: llvm-pdbutil diadump -native -udts %p/../Inputs/every-class.pdb \
; RUN:     | FileCheck -check-prefix=DUMP %s


PRETTY: struct main::__l2::<unnamed-type-Anonymous> [sizeof = 1]
PRETTY: struct main::__l2::Scoped [sizeof = 1]
PRETTY: struct __vc_attributes::event_sourceAttribute [sizeof = 12]
PRETTY: struct __vc_attributes::helper_attributes::v1_alttypeAttribute [sizeof = 4]
PRETTY: struct __vc_attributes::helper_attributes::usageAttribute [sizeof = 4]
PRETTY: struct __vc_attributes::threadingAttribute [sizeof = 4]
PRETTY: struct __vc_attributes::aggregatableAttribute [sizeof = 4]
PRETTY: struct __vc_attributes::event_receiverAttribute [sizeof = 8]
PRETTY: struct __vc_attributes::moduleAttribute [sizeof = 96]
PRETTY: struct Nested [sizeof = 1]
PRETTY: struct Nested::F [sizeof = 1]
PRETTY: struct Constructor [sizeof = 1]
PRETTY: class Class [sizeof = 1]
PRETTY: union Union [sizeof = 1]
PRETTY: struct Operator [sizeof = 1]
PRETTY: struct Cast [sizeof = 1]
PRETTY: struct Nothing [sizeof = 1]
PRETTY: struct Assignment [sizeof = 1]
PRETTY: const struct Nothing
PRETTY: volatile struct Nothing
PRETTY: const volatile struct Nothing
PRETTY: unaligned struct Nothing

; DUMP:      {
; DUMP-NEXT:   symIndexId: 2
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: main::__l2::<unnamed-type-Anonymous>
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 1
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 4
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: main::__l2::Scoped
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 1
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 5
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::event_sourceAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 12
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 6
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::helper_attributes::v1_alttypeAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 4
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 7
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::helper_attributes::usageAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 4
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 8
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::threadingAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 4
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 9
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::aggregatableAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 4
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 10
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::event_receiverAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 8
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 11
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: __vc_attributes::moduleAttribute
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 96
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 12
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nested
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 1
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 13
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nested::F
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 1
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 14
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Constructor
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 1
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 15
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Class
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: class
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 16
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Union
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: union
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 17
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Operator
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 1
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 18
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Cast
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 1
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 1
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 19
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nothing
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 20
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Assignment
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 1
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 1
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 21
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nothing
; DUMP-NEXT:   unmodifiedTypeId: 19
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 1
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 22
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nothing
; DUMP-NEXT:   unmodifiedTypeId: 19
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 1
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 23
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nothing
; DUMP-NEXT:   unmodifiedTypeId: 19
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 1
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 0
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 1
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT:   symIndexId: 24
; DUMP-NEXT:   symTag: UDT
; DUMP-NEXT:   name: Nothing
; DUMP-NEXT:   unmodifiedTypeId: 19
; DUMP-NEXT:   virtualTableShapeId: 3
; DUMP-NEXT:   length: 1
; DUMP-NEXT:   udtKind: struct
; DUMP-NEXT:   constructor: 0
; DUMP-NEXT:   constType: 0
; DUMP-NEXT:   hasAssignmentOperator: 0
; DUMP-NEXT:   hasCastOperator: 0
; DUMP-NEXT:   hasNestedTypes: 0
; DUMP-NEXT:   overloadedOperator: 0
; DUMP-NEXT:   isInterfaceUdt: 0
; DUMP-NEXT:   intrinsic: 0
; DUMP-NEXT:   nested: 0
; DUMP-NEXT:   packed: 0
; DUMP-NEXT:   isRefUdt: 0
; DUMP-NEXT:   scoped: 0
; DUMP-NEXT:   unalignedType: 1
; DUMP-NEXT:   isValueUdt: 0
; DUMP-NEXT:   volatileType: 0
; DUMP-NEXT: }