[llvm] r280769 - Re-add "Make FieldList records print as a YAML sequence"
Zachary Turner via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 6 16:45:47 PDT 2016
Author: zturner
Date: Tue Sep 6 18:45:47 2016
New Revision: 280769
URL: http://llvm.org/viewvc/llvm-project?rev=280769&view=rev
Log:
Re-add "Make FieldList records print as a YAML sequence"
This was originally submitted in r280549, and reverted in r280577
due to breaking one MSVC buildbot. The issue is that MSVC 2013
doesn't synthesize move constructors. So even though i was
writing std::move(A) it was copying it, leading to a bogus ArrayRef.
The solution here is to simply remove the std::vector<> from the
type, since it is unused and unnecessary. This way the ArrayRef
continues to point into the original memory backing the CVType.
Modified:
llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-types.test
llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.cpp
llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.h
llvm/trunk/tools/llvm-pdbdump/PdbYaml.h
Modified: llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-types.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-types.test?rev=280769&r1=280768&r2=280769&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-types.test (original)
+++ llvm/trunk/test/DebugInfo/PDB/pdbdump-yaml-types.test Tue Sep 6 18:45:47 2016
@@ -1,1087 +1,1087 @@
-; RUN: llvm-pdbdump pdb2yaml -tpi-stream %p/Inputs/empty.pdb \
-; RUN: | FileCheck -check-prefix=YAML %s
-
-YAML: ---
-YAML: MSF:
-YAML: SuperBlock:
-YAML: BlockSize: 4096
-YAML: FreeBlockMap: 2
-YAML: NumBlocks: 25
-YAML: NumDirectoryBytes: 136
-YAML: Unknown1: 0
-YAML: BlockMapAddr: 24
-YAML: NumDirectoryBlocks: 1
-YAML: DirectoryBlocks: [ 23 ]
-YAML: NumStreams: 0
-YAML: FileSize: 102400
-YAML: TpiStream:
-YAML: Version: VC80
-YAML: Records:
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ ]
-YAML: - Kind: LF_PROCEDURE
-YAML: Procedure:
-YAML: ReturnType: 116
-YAML: CallConv: NearC
-YAML: Options: [ None ]
-YAML: ParameterCount: 0
-YAML: ArgumentList: 4096
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: apartment
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: single
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 3
-YAML: Name: free
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 4
-YAML: Name: neutral
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 5
-YAML: Name: both
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 5
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4098
-YAML: Name: '__vc_attributes::threadingAttribute::threading_e'
-YAML: UniqueName: '.?AW4threading_e at threadingAttribute@__vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::threadingAttribute'
-YAML: UniqueName: '.?AUthreadingAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4100
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4099 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4100
-YAML: ThisType: 4101
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4102
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4100
-YAML: ThisType: 4101
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 0
-YAML: ArgumentList: 4096
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_METHODLIST
-YAML: MethodOverloadList:
-YAML: Methods:
-YAML: - Type: 4103
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4104
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4099
-YAML: Name: threading_e
-YAML: Kind: LF_METHOD
-YAML: OverloadedMethod:
-YAML: NumOverloads: 2
-YAML: MethodList: 4105
-YAML: Name: threadingAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4099
-YAML: FieldOffset: 0
-YAML: Name: value
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 4
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4106
-YAML: Name: '__vc_attributes::threadingAttribute'
-YAML: UniqueName: '.?AUthreadingAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 4
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 0
-YAML: Name: native
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: com
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: managed
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 3
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4108
-YAML: Name: '__vc_attributes::event_receiverAttribute::type_e'
-YAML: UniqueName: '.?AW4type_e at event_receiverAttribute@__vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::event_receiverAttribute'
-YAML: UniqueName: '.?AUevent_receiverAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4110
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4109, 48 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4110
-YAML: ThisType: 4111
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 2
-YAML: ArgumentList: 4112
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4109 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4110
-YAML: ThisType: 4111
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4114
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4110
-YAML: ThisType: 4111
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 0
-YAML: ArgumentList: 4096
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_METHODLIST
-YAML: MethodOverloadList:
-YAML: Methods:
-YAML: - Type: 4113
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4115
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4116
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4109
-YAML: Name: type_e
-YAML: Kind: LF_METHOD
-YAML: OverloadedMethod:
-YAML: NumOverloads: 3
-YAML: MethodList: 4117
-YAML: Name: event_receiverAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4109
-YAML: FieldOffset: 0
-YAML: Name: type
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 48
-YAML: FieldOffset: 4
-YAML: Name: layout_dependent
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 6
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4118
-YAML: Name: '__vc_attributes::event_receiverAttribute'
-YAML: UniqueName: '.?AUevent_receiverAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 8
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 0
-YAML: Name: never
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: allowed
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: always
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 3
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4120
-YAML: Name: '__vc_attributes::aggregatableAttribute::type_e'
-YAML: UniqueName: '.?AW4type_e at aggregatableAttribute@__vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::aggregatableAttribute'
-YAML: UniqueName: '.?AUaggregatableAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4122
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4121 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4122
-YAML: ThisType: 4123
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4124
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4122
-YAML: ThisType: 4123
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 0
-YAML: ArgumentList: 4096
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_METHODLIST
-YAML: MethodOverloadList:
-YAML: Methods:
-YAML: - Type: 4125
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4126
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4121
-YAML: Name: type_e
-YAML: Kind: LF_METHOD
-YAML: OverloadedMethod:
-YAML: NumOverloads: 2
-YAML: MethodList: 4127
-YAML: Name: aggregatableAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4121
-YAML: FieldOffset: 0
-YAML: Name: type
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 4
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4128
-YAML: Name: '__vc_attributes::aggregatableAttribute'
-YAML: UniqueName: '.?AUaggregatableAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 4
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 3
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4108
-YAML: Name: '__vc_attributes::event_sourceAttribute::type_e'
-YAML: UniqueName: '.?AW4type_e at event_sourceAttribute@__vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 0
-YAML: Name: speed
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: size
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 2
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4131
-YAML: Name: '__vc_attributes::event_sourceAttribute::optimize_e'
-YAML: UniqueName: '.?AW4optimize_e at event_sourceAttribute@__vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::event_sourceAttribute'
-YAML: UniqueName: '.?AUevent_sourceAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4133
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4130 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4133
-YAML: ThisType: 4134
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4135
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4133
-YAML: ThisType: 4134
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 0
-YAML: ArgumentList: 4096
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_METHODLIST
-YAML: MethodOverloadList:
-YAML: Methods:
-YAML: - Type: 4136
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4137
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4130
-YAML: Name: type_e
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4132
-YAML: Name: optimize_e
-YAML: Kind: LF_METHOD
-YAML: OverloadedMethod:
-YAML: NumOverloads: 2
-YAML: MethodList: 4138
-YAML: Name: event_sourceAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4130
-YAML: FieldOffset: 0
-YAML: Name: type
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4132
-YAML: FieldOffset: 4
-YAML: Name: optimize
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 48
-YAML: FieldOffset: 8
-YAML: Name: decorate
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 7
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4139
-YAML: Name: '__vc_attributes::event_sourceAttribute'
-YAML: UniqueName: '.?AUevent_sourceAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 12
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: dll
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: exe
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 3
-YAML: Name: service
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 4
-YAML: Name: unspecified
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: EXE
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 3
-YAML: Name: SERVICE
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 6
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4141
-YAML: Name: '__vc_attributes::moduleAttribute::type_e'
-YAML: UniqueName: '.?AW4type_e at moduleAttribute@__vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::moduleAttribute'
-YAML: UniqueName: '.?AUmoduleAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4143
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_MODIFIER
-YAML: Modifier:
-YAML: ModifiedType: 112
-YAML: Modifiers: [ None, Const ]
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4145
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4142, 4146, 4146, 4146, 116, 48, 4146, 116,
-YAML: 4146, 4146, 116, 48, 48, 4146, 4146 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4143
-YAML: ThisType: 4144
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 15
-YAML: ArgumentList: 4147
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4142 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4143
-YAML: ThisType: 4144
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4149
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4143
-YAML: ThisType: 4144
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 0
-YAML: ArgumentList: 4096
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_METHODLIST
-YAML: MethodOverloadList:
-YAML: Methods:
-YAML: - Type: 4148
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4150
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Type: 4151
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: ''
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4142
-YAML: Name: type_e
-YAML: Kind: LF_METHOD
-YAML: OverloadedMethod:
-YAML: NumOverloads: 3
-YAML: MethodList: 4152
-YAML: Name: moduleAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4142
-YAML: FieldOffset: 0
-YAML: Name: type
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 4
-YAML: Name: name
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 8
-YAML: Name: version
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 12
-YAML: Name: uuid
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 116
-YAML: FieldOffset: 16
-YAML: Name: lcid
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 48
-YAML: FieldOffset: 20
-YAML: Name: control
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 24
-YAML: Name: helpstring
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 116
-YAML: FieldOffset: 28
-YAML: Name: helpstringcontext
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 32
-YAML: Name: helpstringdll
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 36
-YAML: Name: helpfile
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 116
-YAML: FieldOffset: 40
-YAML: Name: helpcontext
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 48
-YAML: FieldOffset: 44
-YAML: Name: hidden
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 48
-YAML: FieldOffset: 45
-YAML: Name: restricted
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 48
-YAML: Name: custom
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4146
-YAML: FieldOffset: 52
-YAML: Name: resource_name
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 19
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4153
-YAML: Name: '__vc_attributes::moduleAttribute'
-YAML: UniqueName: '.?AUmoduleAttribute at __vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 56
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 0
-YAML: Name: eAnyUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: eCoClassUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: eCOMInterfaceUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 6
-YAML: Name: eInterfaceUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 8
-YAML: Name: eMemberUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 16
-YAML: Name: eMethodUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 32
-YAML: Name: eInterfaceMethodUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 64
-YAML: Name: eInterfaceMemberUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 128
-YAML: Name: eCoClassMemberUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 256
-YAML: Name: eCoClassMethodUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 768
-YAML: Name: eGlobalMethodUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1024
-YAML: Name: eGlobalDataUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2048
-YAML: Name: eClassUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 4096
-YAML: Name: eInterfaceParameterUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 12288
-YAML: Name: eMethodParameterUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 16384
-YAML: Name: eIDLModuleUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: -32768
-YAML: Name: eAnonymousUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 65536
-YAML: Name: eTypedefUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 131072
-YAML: Name: eUnionUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 262144
-YAML: Name: eEnumUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 524288
-YAML: Name: eDefineTagUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1048576
-YAML: Name: eStructUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2097152
-YAML: Name: eLocalUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 4194304
-YAML: Name: ePropertyUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 8388608
-YAML: Name: eEventUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 16777216
-YAML: Name: eTemplateUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 16777216
-YAML: Name: eModuleUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 33554432
-YAML: Name: eIllegalUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 67108864
-YAML: Name: eAsynchronousUsage
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 4161535
-YAML: Name: eAnyIDLUsage
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 30
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4155
-YAML: Name: '__vc_attributes::helper_attributes::usageAttribute::usage_e'
-YAML: UniqueName: '.?AW4usage_e at usageAttribute@helper_attributes at __vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::helper_attributes::usageAttribute'
-YAML: UniqueName: '.?AUusageAttribute at helper_attributes@__vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4157
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 117 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4157
-YAML: ThisType: 4158
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4159
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4156
-YAML: Name: usage_e
-YAML: Kind: LF_ONEMETHOD
-YAML: OneMethod:
-YAML: Type: 4160
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: usageAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 117
-YAML: FieldOffset: 0
-YAML: Name: value
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 3
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4161
-YAML: Name: '__vc_attributes::helper_attributes::usageAttribute'
-YAML: UniqueName: '.?AUusageAttribute at helper_attributes@__vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 4
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 0
-YAML: Name: eBoolean
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 1
-YAML: Name: eInteger
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 2
-YAML: Name: eFloat
-YAML: Kind: LF_ENUMERATE
-YAML: Enumerator:
-YAML: Access: Public
-YAML: Value: 3
-YAML: Name: eDouble
-YAML: - Kind: LF_ENUM
-YAML: Enum:
-YAML: NumEnumerators: 4
-YAML: Options: [ None, Nested, HasUniqueName ]
-YAML: FieldList: 4163
-YAML: Name: '__vc_attributes::helper_attributes::v1_alttypeAttribute::type_e'
-YAML: UniqueName: '.?AW4type_e at v1_alttypeAttribute@helper_attributes at __vc_attributes@@'
-YAML: UnderlyingType: 116
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 0
-YAML: Options: [ None, ForwardReference, HasUniqueName ]
-YAML: FieldList: 0
-YAML: Name: '__vc_attributes::helper_attributes::v1_alttypeAttribute'
-YAML: UniqueName: '.?AUv1_alttypeAttribute at helper_attributes@__vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 0
-YAML: - Kind: LF_POINTER
-YAML: Pointer:
-YAML: ReferentType: 4165
-YAML: PtrKind: Near32
-YAML: Mode: Pointer
-YAML: Options: [ None, Const ]
-YAML: Size: 4
-YAML: - Kind: LF_ARGLIST
-YAML: ArgList:
-YAML: ArgIndices: [ 4164 ]
-YAML: - Kind: LF_MFUNCTION
-YAML: MemberFunction:
-YAML: ReturnType: 3
-YAML: ClassType: 4165
-YAML: ThisType: 4166
-YAML: CallConv: ThisCall
-YAML: Options: [ None, Constructor ]
-YAML: ParameterCount: 1
-YAML: ArgumentList: 4167
-YAML: ThisPointerAdjustment: 0
-YAML: - Kind: LF_FIELDLIST
-YAML: FieldList:
-YAML: Kind: LF_NESTTYPE
-YAML: NestedType:
-YAML: Type: 4164
-YAML: Name: type_e
-YAML: Kind: LF_ONEMETHOD
-YAML: OneMethod:
-YAML: Type: 4168
-YAML: Kind: Vanilla
-YAML: Options: [ None ]
-YAML: Access: Public
-YAML: VFTableOffset: -1
-YAML: Name: v1_alttypeAttribute
-YAML: Kind: LF_MEMBER
-YAML: DataMember:
-YAML: Access: Public
-YAML: Type: 4164
-YAML: FieldOffset: 0
-YAML: Name: type
-YAML: - Kind: LF_STRUCTURE
-YAML: Class:
-YAML: MemberCount: 3
-YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
-YAML: FieldList: 4169
-YAML: Name: '__vc_attributes::helper_attributes::v1_alttypeAttribute'
-YAML: UniqueName: '.?AUv1_alttypeAttribute at helper_attributes@__vc_attributes@@'
-YAML: Hfa: None
-YAML: WinRTKind: None
-YAML: DerivationList: 0
-YAML: VTableShape: 0
-YAML: Size: 4
-YAML: ...
+; RUN: llvm-pdbdump pdb2yaml -tpi-stream %p/Inputs/empty.pdb \
+; RUN: | FileCheck -check-prefix=YAML %s
+
+YAML: ---
+YAML: MSF:
+YAML: SuperBlock:
+YAML: BlockSize: 4096
+YAML: FreeBlockMap: 2
+YAML: NumBlocks: 25
+YAML: NumDirectoryBytes: 136
+YAML: Unknown1: 0
+YAML: BlockMapAddr: 24
+YAML: NumDirectoryBlocks: 1
+YAML: DirectoryBlocks: [ 23 ]
+YAML: NumStreams: 0
+YAML: FileSize: 102400
+YAML: TpiStream:
+YAML: Version: VC80
+YAML: Records:
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ ]
+YAML: - Kind: LF_PROCEDURE
+YAML: Procedure:
+YAML: ReturnType: 116
+YAML: CallConv: NearC
+YAML: Options: [ None ]
+YAML: ParameterCount: 0
+YAML: ArgumentList: 4096
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: apartment
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: single
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 3
+YAML: Name: free
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 4
+YAML: Name: neutral
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 5
+YAML: Name: both
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 5
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4098
+YAML: Name: '__vc_attributes::threadingAttribute::threading_e'
+YAML: UniqueName: '.?AW4threading_e at threadingAttribute@__vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::threadingAttribute'
+YAML: UniqueName: '.?AUthreadingAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4100
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4099 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4100
+YAML: ThisType: 4101
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4102
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4100
+YAML: ThisType: 4101
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 0
+YAML: ArgumentList: 4096
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_METHODLIST
+YAML: MethodOverloadList:
+YAML: Methods:
+YAML: - Type: 4103
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4104
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4099
+YAML: Name: threading_e
+YAML: - Kind: LF_METHOD
+YAML: OverloadedMethod:
+YAML: NumOverloads: 2
+YAML: MethodList: 4105
+YAML: Name: threadingAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4099
+YAML: FieldOffset: 0
+YAML: Name: value
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 4
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4106
+YAML: Name: '__vc_attributes::threadingAttribute'
+YAML: UniqueName: '.?AUthreadingAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 4
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 0
+YAML: Name: native
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: com
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: managed
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 3
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4108
+YAML: Name: '__vc_attributes::event_receiverAttribute::type_e'
+YAML: UniqueName: '.?AW4type_e at event_receiverAttribute@__vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::event_receiverAttribute'
+YAML: UniqueName: '.?AUevent_receiverAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4110
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4109, 48 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4110
+YAML: ThisType: 4111
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 2
+YAML: ArgumentList: 4112
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4109 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4110
+YAML: ThisType: 4111
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4114
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4110
+YAML: ThisType: 4111
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 0
+YAML: ArgumentList: 4096
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_METHODLIST
+YAML: MethodOverloadList:
+YAML: Methods:
+YAML: - Type: 4113
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4115
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4116
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4109
+YAML: Name: type_e
+YAML: - Kind: LF_METHOD
+YAML: OverloadedMethod:
+YAML: NumOverloads: 3
+YAML: MethodList: 4117
+YAML: Name: event_receiverAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4109
+YAML: FieldOffset: 0
+YAML: Name: type
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 48
+YAML: FieldOffset: 4
+YAML: Name: layout_dependent
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 6
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4118
+YAML: Name: '__vc_attributes::event_receiverAttribute'
+YAML: UniqueName: '.?AUevent_receiverAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 8
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 0
+YAML: Name: never
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: allowed
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: always
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 3
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4120
+YAML: Name: '__vc_attributes::aggregatableAttribute::type_e'
+YAML: UniqueName: '.?AW4type_e at aggregatableAttribute@__vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::aggregatableAttribute'
+YAML: UniqueName: '.?AUaggregatableAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4122
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4121 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4122
+YAML: ThisType: 4123
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4124
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4122
+YAML: ThisType: 4123
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 0
+YAML: ArgumentList: 4096
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_METHODLIST
+YAML: MethodOverloadList:
+YAML: Methods:
+YAML: - Type: 4125
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4126
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4121
+YAML: Name: type_e
+YAML: - Kind: LF_METHOD
+YAML: OverloadedMethod:
+YAML: NumOverloads: 2
+YAML: MethodList: 4127
+YAML: Name: aggregatableAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4121
+YAML: FieldOffset: 0
+YAML: Name: type
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 4
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4128
+YAML: Name: '__vc_attributes::aggregatableAttribute'
+YAML: UniqueName: '.?AUaggregatableAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 4
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 3
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4108
+YAML: Name: '__vc_attributes::event_sourceAttribute::type_e'
+YAML: UniqueName: '.?AW4type_e at event_sourceAttribute@__vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 0
+YAML: Name: speed
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: size
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 2
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4131
+YAML: Name: '__vc_attributes::event_sourceAttribute::optimize_e'
+YAML: UniqueName: '.?AW4optimize_e at event_sourceAttribute@__vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::event_sourceAttribute'
+YAML: UniqueName: '.?AUevent_sourceAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4133
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4130 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4133
+YAML: ThisType: 4134
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4135
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4133
+YAML: ThisType: 4134
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 0
+YAML: ArgumentList: 4096
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_METHODLIST
+YAML: MethodOverloadList:
+YAML: Methods:
+YAML: - Type: 4136
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4137
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4130
+YAML: Name: type_e
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4132
+YAML: Name: optimize_e
+YAML: - Kind: LF_METHOD
+YAML: OverloadedMethod:
+YAML: NumOverloads: 2
+YAML: MethodList: 4138
+YAML: Name: event_sourceAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4130
+YAML: FieldOffset: 0
+YAML: Name: type
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4132
+YAML: FieldOffset: 4
+YAML: Name: optimize
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 48
+YAML: FieldOffset: 8
+YAML: Name: decorate
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 7
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4139
+YAML: Name: '__vc_attributes::event_sourceAttribute'
+YAML: UniqueName: '.?AUevent_sourceAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 12
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: dll
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: exe
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 3
+YAML: Name: service
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 4
+YAML: Name: unspecified
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: EXE
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 3
+YAML: Name: SERVICE
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 6
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4141
+YAML: Name: '__vc_attributes::moduleAttribute::type_e'
+YAML: UniqueName: '.?AW4type_e at moduleAttribute@__vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::moduleAttribute'
+YAML: UniqueName: '.?AUmoduleAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4143
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_MODIFIER
+YAML: Modifier:
+YAML: ModifiedType: 112
+YAML: Modifiers: [ None, Const ]
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4145
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4142, 4146, 4146, 4146, 116, 48, 4146, 116,
+YAML: 4146, 4146, 116, 48, 48, 4146, 4146 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4143
+YAML: ThisType: 4144
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 15
+YAML: ArgumentList: 4147
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4142 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4143
+YAML: ThisType: 4144
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4149
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4143
+YAML: ThisType: 4144
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 0
+YAML: ArgumentList: 4096
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_METHODLIST
+YAML: MethodOverloadList:
+YAML: Methods:
+YAML: - Type: 4148
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4150
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Type: 4151
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: ''
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4142
+YAML: Name: type_e
+YAML: - Kind: LF_METHOD
+YAML: OverloadedMethod:
+YAML: NumOverloads: 3
+YAML: MethodList: 4152
+YAML: Name: moduleAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4142
+YAML: FieldOffset: 0
+YAML: Name: type
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 4
+YAML: Name: name
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 8
+YAML: Name: version
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 12
+YAML: Name: uuid
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 116
+YAML: FieldOffset: 16
+YAML: Name: lcid
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 48
+YAML: FieldOffset: 20
+YAML: Name: control
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 24
+YAML: Name: helpstring
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 116
+YAML: FieldOffset: 28
+YAML: Name: helpstringcontext
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 32
+YAML: Name: helpstringdll
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 36
+YAML: Name: helpfile
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 116
+YAML: FieldOffset: 40
+YAML: Name: helpcontext
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 48
+YAML: FieldOffset: 44
+YAML: Name: hidden
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 48
+YAML: FieldOffset: 45
+YAML: Name: restricted
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 48
+YAML: Name: custom
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4146
+YAML: FieldOffset: 52
+YAML: Name: resource_name
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 19
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4153
+YAML: Name: '__vc_attributes::moduleAttribute'
+YAML: UniqueName: '.?AUmoduleAttribute at __vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 56
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 0
+YAML: Name: eAnyUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: eCoClassUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: eCOMInterfaceUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 6
+YAML: Name: eInterfaceUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 8
+YAML: Name: eMemberUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 16
+YAML: Name: eMethodUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 32
+YAML: Name: eInterfaceMethodUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 64
+YAML: Name: eInterfaceMemberUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 128
+YAML: Name: eCoClassMemberUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 256
+YAML: Name: eCoClassMethodUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 768
+YAML: Name: eGlobalMethodUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1024
+YAML: Name: eGlobalDataUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2048
+YAML: Name: eClassUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 4096
+YAML: Name: eInterfaceParameterUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 12288
+YAML: Name: eMethodParameterUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 16384
+YAML: Name: eIDLModuleUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: -32768
+YAML: Name: eAnonymousUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 65536
+YAML: Name: eTypedefUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 131072
+YAML: Name: eUnionUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 262144
+YAML: Name: eEnumUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 524288
+YAML: Name: eDefineTagUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1048576
+YAML: Name: eStructUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2097152
+YAML: Name: eLocalUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 4194304
+YAML: Name: ePropertyUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 8388608
+YAML: Name: eEventUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 16777216
+YAML: Name: eTemplateUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 16777216
+YAML: Name: eModuleUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 33554432
+YAML: Name: eIllegalUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 67108864
+YAML: Name: eAsynchronousUsage
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 4161535
+YAML: Name: eAnyIDLUsage
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 30
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4155
+YAML: Name: '__vc_attributes::helper_attributes::usageAttribute::usage_e'
+YAML: UniqueName: '.?AW4usage_e at usageAttribute@helper_attributes at __vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::helper_attributes::usageAttribute'
+YAML: UniqueName: '.?AUusageAttribute at helper_attributes@__vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4157
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 117 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4157
+YAML: ThisType: 4158
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4159
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4156
+YAML: Name: usage_e
+YAML: - Kind: LF_ONEMETHOD
+YAML: OneMethod:
+YAML: Type: 4160
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: usageAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 117
+YAML: FieldOffset: 0
+YAML: Name: value
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 3
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4161
+YAML: Name: '__vc_attributes::helper_attributes::usageAttribute'
+YAML: UniqueName: '.?AUusageAttribute at helper_attributes@__vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 4
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 0
+YAML: Name: eBoolean
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 1
+YAML: Name: eInteger
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 2
+YAML: Name: eFloat
+YAML: - Kind: LF_ENUMERATE
+YAML: Enumerator:
+YAML: Access: Public
+YAML: Value: 3
+YAML: Name: eDouble
+YAML: - Kind: LF_ENUM
+YAML: Enum:
+YAML: NumEnumerators: 4
+YAML: Options: [ None, Nested, HasUniqueName ]
+YAML: FieldList: 4163
+YAML: Name: '__vc_attributes::helper_attributes::v1_alttypeAttribute::type_e'
+YAML: UniqueName: '.?AW4type_e at v1_alttypeAttribute@helper_attributes at __vc_attributes@@'
+YAML: UnderlyingType: 116
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 0
+YAML: Options: [ None, ForwardReference, HasUniqueName ]
+YAML: FieldList: 0
+YAML: Name: '__vc_attributes::helper_attributes::v1_alttypeAttribute'
+YAML: UniqueName: '.?AUv1_alttypeAttribute at helper_attributes@__vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 0
+YAML: - Kind: LF_POINTER
+YAML: Pointer:
+YAML: ReferentType: 4165
+YAML: PtrKind: Near32
+YAML: Mode: Pointer
+YAML: Options: [ None, Const ]
+YAML: Size: 4
+YAML: - Kind: LF_ARGLIST
+YAML: ArgList:
+YAML: ArgIndices: [ 4164 ]
+YAML: - Kind: LF_MFUNCTION
+YAML: MemberFunction:
+YAML: ReturnType: 3
+YAML: ClassType: 4165
+YAML: ThisType: 4166
+YAML: CallConv: ThisCall
+YAML: Options: [ None, Constructor ]
+YAML: ParameterCount: 1
+YAML: ArgumentList: 4167
+YAML: ThisPointerAdjustment: 0
+YAML: - Kind: LF_FIELDLIST
+YAML: FieldList:
+YAML: - Kind: LF_NESTTYPE
+YAML: NestedType:
+YAML: Type: 4164
+YAML: Name: type_e
+YAML: - Kind: LF_ONEMETHOD
+YAML: OneMethod:
+YAML: Type: 4168
+YAML: Kind: Vanilla
+YAML: Options: [ None ]
+YAML: Access: Public
+YAML: VFTableOffset: -1
+YAML: Name: v1_alttypeAttribute
+YAML: - Kind: LF_MEMBER
+YAML: DataMember:
+YAML: Access: Public
+YAML: Type: 4164
+YAML: FieldOffset: 0
+YAML: Name: type
+YAML: - Kind: LF_STRUCTURE
+YAML: Class:
+YAML: MemberCount: 3
+YAML: Options: [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+YAML: FieldList: 4169
+YAML: Name: '__vc_attributes::helper_attributes::v1_alttypeAttribute'
+YAML: UniqueName: '.?AUv1_alttypeAttribute at helper_attributes@__vc_attributes@@'
+YAML: Hfa: None
+YAML: WinRTKind: None
+YAML: DerivationList: 0
+YAML: VTableShape: 0
+YAML: Size: 4
+YAML: ...
Modified: llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.cpp?rev=280769&r1=280768&r2=280769&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.cpp (original)
+++ llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.cpp Tue Sep 6 18:45:47 2016
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "CodeViewYaml.h"
+#include "PdbYaml.h"
#include "llvm/DebugInfo/CodeView/CVTypeVisitor.h"
#include "llvm/DebugInfo/CodeView/EnumTables.h"
@@ -25,6 +26,35 @@ LLVM_YAML_IS_SEQUENCE_VECTOR(OneMethodRe
LLVM_YAML_IS_SEQUENCE_VECTOR(VFTableSlotKind)
LLVM_YAML_IS_SEQUENCE_VECTOR(StringRef)
LLVM_YAML_IS_SEQUENCE_VECTOR(CVType)
+LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::pdb::yaml::PdbTpiRecord)
+
+namespace {
+struct FieldListRecordSplitter : public TypeVisitorCallbacks {
+public:
+ explicit FieldListRecordSplitter(
+ std::vector<llvm::pdb::yaml::PdbTpiRecord> &Records)
+ : Records(Records) {}
+
+#define TYPE_RECORD(EnumName, EnumVal, Name)
+#define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
+#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
+#define MEMBER_RECORD(EnumName, EnumVal, Name) \
+ Error visitKnownRecord(const CVType &CVT, Name##Record &Record) override { \
+ visitKnownRecordImpl(CVT); \
+ return Error::success(); \
+ }
+#include "llvm/DebugInfo/CodeView/TypeRecords.def"
+
+private:
+ void visitKnownRecordImpl(const CVType &CVT) {
+ llvm::pdb::yaml::PdbTpiRecord R;
+ R.Record = CVT;
+ Records.push_back(std::move(R));
+ }
+
+ std::vector<llvm::pdb::yaml::PdbTpiRecord> &Records;
+};
+}
namespace llvm {
namespace yaml {
@@ -518,3 +548,15 @@ llvm::codeview::yaml::YamlTypeDumperCall
YamlIO.mapRequired("Kind", K);
return K;
}
+
+void llvm::codeview::yaml::YamlTypeDumperCallbacks::visitKnownRecordImpl(
+ const char *Name, const CVType &Type, FieldListRecord &FieldList) {
+
+ std::vector<llvm::pdb::yaml::PdbTpiRecord> Records;
+ if (YamlIO.outputting()) {
+ FieldListRecordSplitter Splitter(Records);
+ CVTypeVisitor V(Splitter);
+ consumeError(V.visitFieldListMemberStream(FieldList.Data));
+ }
+ YamlIO.mapRequired(Name, Records);
+}
Modified: llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.h?rev=280769&r1=280768&r2=280769&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.h (original)
+++ llvm/trunk/tools/llvm-pdbdump/CodeViewYaml.h Tue Sep 6 18:45:47 2016
@@ -27,7 +27,7 @@ public:
#define TYPE_RECORD(EnumName, EnumVal, Name) \
Error visitKnownRecord(const CVRecord<TypeLeafKind> &CVR, \
Name##Record &Record) override { \
- YamlIO.mapRequired(#Name, Record); \
+ visitKnownRecordImpl(#Name, CVR, Record); \
return Error::success(); \
}
#define MEMBER_RECORD(EnumName, EnumVal, Name) \
@@ -37,6 +37,14 @@ public:
#include "llvm/DebugInfo/CodeView/TypeRecords.def"
private:
+ template <typename T>
+ void visitKnownRecordImpl(const char *Name, const CVType &Type, T &Record) {
+ YamlIO.mapRequired(Name, Record);
+ }
+
+ void visitKnownRecordImpl(const char *Name, const CVType &Type,
+ FieldListRecord &FieldList);
+
llvm::yaml::IO &YamlIO;
};
}
Modified: llvm/trunk/tools/llvm-pdbdump/PdbYaml.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbdump/PdbYaml.h?rev=280769&r1=280768&r2=280769&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbdump/PdbYaml.h (original)
+++ llvm/trunk/tools/llvm-pdbdump/PdbYaml.h Tue Sep 6 18:45:47 2016
@@ -70,7 +70,6 @@ struct PdbDbiStream {
};
struct PdbTpiRecord {
- std::vector<uint8_t> RecordData;
codeview::CVType Record;
};
More information about the llvm-commits
mailing list