blob: 63fd9d92ca1c42d71d3c5cd10bcb06b0a7c6ae28 [file] [log] [blame]
; Test that the native PDB reader can enumerate pointer 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.
; RUN: llvm-pdbutil pretty -native -funcsigs %p/../Inputs/every-function.pdb \
; RUN: | FileCheck -check-prefix=PRETTY %s
; RUN: llvm-pdbutil diadump -native -funcsigs %p/../Inputs/every-function.pdb \
; RUN: | FileCheck -check-prefix=DUMP %s
; PRETTY: void __cdecl (void*, unsigned int)
; PRETTY-NEXT: void __cdecl (void*, unsigned __int64)
; PRETTY-NEXT: int __cdecl ()
; PRETTY-NEXT: int ()
; PRETTY-NEXT: int __fastcall ()
; PRETTY-NEXT: int __vectorcall ()
; PRETTY-NEXT: int __cdecl (int)
; PRETTY-NEXT: int __cdecl (int, char)
; PRETTY-NEXT: void __cdecl (Struct)
; PRETTY-NEXT: void (Struct::)()
; PRETTY-NEXT: int (Struct::)()
; PRETTY-NEXT: void (Struct::)()
; PRETTY-NEXT: void (Struct::)()
; PRETTY-NEXT: void (Struct::)()
; PRETTY-NEXT: void (Struct::)()
; PRETTY-NEXT: void __cdecl (const int)
; PRETTY-NEXT: void __cdecl (Struct)
; PRETTY-NEXT: void __cdecl (int*)
; PRETTY-NEXT: void __cdecl (Struct*)
; PRETTY-NEXT: void __cdecl (const int*)
; PRETTY-NEXT: void __cdecl (Struct*)
; PRETTY-NEXT: Struct __cdecl ()
; PRETTY-NEXT: void (Derived::)(Derived*)
; PRETTY-NEXT: void (Derived::)(Derived&)
; PRETTY-NEXT: void (Derived::)()
; PRETTY-NEXT: void (Derived::)()
; PRETTY-NEXT: Derived& (Derived::)(Derived*)
; PRETTY-NEXT: Derived& (Derived::)(Derived&)
; PRETTY-NEXT: void (Derived::)()
; PRETTY-NEXT: void* (Derived::)(unsigned int)
; PRETTY-NEXT: void (__vc_attributes::event_sourceAttribute::)(__vc_attributes::event_sourceAttribute::type_e)
; PRETTY-NEXT: void (__vc_attributes::event_sourceAttribute::)()
; PRETTY-NEXT: void (__vc_attributes::helper_attributes::v1_alttypeAttribute::)(__vc_attributes::helper_attributes::v1_alttypeAttribute::type_e)
; PRETTY-NEXT: void (__vc_attributes::helper_attributes::usageAttribute::)(unsigned int)
; PRETTY-NEXT: void (__vc_attributes::threadingAttribute::)(__vc_attributes::threadingAttribute::threading_e)
; PRETTY-NEXT: void (__vc_attributes::threadingAttribute::)()
; PRETTY-NEXT: void (__vc_attributes::aggregatableAttribute::)(__vc_attributes::aggregatableAttribute::type_e)
; PRETTY-NEXT: void (__vc_attributes::aggregatableAttribute::)()
; PRETTY-NEXT: void (__vc_attributes::event_receiverAttribute::)(__vc_attributes::event_receiverAttribute::type_e, bool)
; PRETTY-NEXT: void (__vc_attributes::event_receiverAttribute::)(__vc_attributes::event_receiverAttribute::type_e)
; PRETTY-NEXT: void (__vc_attributes::event_receiverAttribute::)()
; PRETTY-NEXT: void (__vc_attributes::moduleAttribute::)(__vc_attributes::moduleAttribute::type_e, const char*, const char*, const char*, int, bool, const char*, int, const char*, const char*, int, bool, bool, const char*, const char*)
; PRETTY-NEXT: void (__vc_attributes::moduleAttribute::)(__vc_attributes::moduleAttribute::type_e)
; PRETTY-NEXT: void (__vc_attributes::moduleAttribute::)()
; PRETTY-NEXT: void (Base1::)()
; PRETTY-NEXT: void (Base1::)(Base1&)
; PRETTY-NEXT: void (Base1::)()
; PRETTY-NEXT: Base1& (Base1::)(Base1&)
; PRETTY-NEXT: void* (Base1::)(unsigned int)
; PRETTY-NEXT: void (Base2::)(Base2*)
; PRETTY-NEXT: void (Base2::)(Base2&)
; PRETTY-NEXT: void (Base2::)()
; PRETTY-NEXT: void (Base2::)()
; PRETTY-NEXT: Base2& (Base2::)(Base2*)
; PRETTY-NEXT: Base2& (Base2::)(Base2&)
; PRETTY-NEXT: void (Base2::)()
; PRETTY-NEXT: void* (Base2::)(unsigned int)
; PRETTY-NEXT: void __cdecl ()
; DUMP: {
; DUMP-NEXT: symIndexId: 2
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 4
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 5
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 0
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 7
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __stdcall
; DUMP-NEXT: count: 0
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 8
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __fastcall
; DUMP-NEXT: count: 0
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 9
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __vectorcall
; DUMP-NEXT: count: 0
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 10
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 11
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 12
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 13
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 15
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 6
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 16
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 17
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 18
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 19
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 20
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 21
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 22
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 23
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 24
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 25
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 26
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 0
; DUMP-NEXT: typeId: 14
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 1
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 27
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 1
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 29
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 1
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 30
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 1
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 31
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 4
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 32
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 33
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 34
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 33
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 35
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 36
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 37
; DUMP-NEXT: thisAdjust: 4
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 38
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 40
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 41
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 43
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 45
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 47
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 48
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 50
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 51
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 3
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 53
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 54
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 55
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 16
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 57
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 58
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 59
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 61
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 62
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 63
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 64
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 65
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 37
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 66
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 1
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 68
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 1
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 69
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 1
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 1
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 70
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 4
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 71
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 72
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 73
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 72
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 74
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 1
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: thisAdjust: 0
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 75
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __thiscall
; DUMP-NEXT: count: 2
; DUMP-NEXT: typeId: 37
; DUMP-NEXT: thisAdjust: 4
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }
; DUMP-NEXT: {
; DUMP-NEXT: symIndexId: 76
; DUMP-NEXT: symTag: FunctionSig
; DUMP-NEXT: callingConvention: __cdecl
; DUMP-NEXT: count: 0
; DUMP-NEXT: typeId: 3
; DUMP-NEXT: constructor: 0
; DUMP-NEXT: constType: 0
; DUMP-NEXT: isConstructorVirtualBase: 0
; DUMP-NEXT: isCxxReturnUdt: 0
; DUMP-NEXT: unalignedType: 0
; DUMP-NEXT: volatileType: 0
; DUMP-NEXT: }