summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/DebugInfo/PDB/Inputs/every-type.cpp15
-rw-r--r--llvm/test/DebugInfo/PDB/Inputs/every-type.pdbbin102400 -> 102400 bytes
-rw-r--r--llvm/test/DebugInfo/PDB/Inputs/every-type.yaml22
-rw-r--r--llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test18
-rw-r--r--llvm/test/DebugInfo/PDB/every-type.test410
5 files changed, 249 insertions, 216 deletions
diff --git a/llvm/test/DebugInfo/PDB/Inputs/every-type.cpp b/llvm/test/DebugInfo/PDB/Inputs/every-type.cpp
index ed715b03430..338f8ea0c67 100644
--- a/llvm/test/DebugInfo/PDB/Inputs/every-type.cpp
+++ b/llvm/test/DebugInfo/PDB/Inputs/every-type.cpp
@@ -4,10 +4,12 @@
void *__purecall = 0;
void __cdecl operator delete(void *,unsigned int) {}
+void __cdecl operator delete(void *,unsigned __int64) {}
struct FooStruct { }; // LF_STRUCTURE
class FooClass { // LF_CLASS
+public:
// LF_FIELDLIST
enum NestedEnum { // LF_ENUM
// LF_NESTTYPE
@@ -50,6 +52,15 @@ union TheUnion {
int SomeArray[7] = {1, 2, 3, 4, 5, 6, 7}; // LF_ARRAY
+template<typename T>
+void Reference(T &t) { }
+
+const volatile FooStruct FS; // LF_MODIFIER with struct
+const volatile FooClass FC; // LF_MODIFIER with class
+const volatile TheUnion TU; // LF_MODIFIER with union
+const volatile FooClass::NestedEnum FCNE = FooClass::A; // LF_MODIFIER with enum
+
+
int main(int argc, char **argv) { // LF_PROCEDURE
const int X = 7; // LF_MODIFIER
@@ -59,5 +70,9 @@ int main(int argc, char **argv) { // LF_PROCEDURE
VInherit VInheritInstance;
IVInherit IVInheritInstance;
TheUnion UnionInstance;
+ Reference(FS); // LF_MODIFIER with struct
+ Reference(FC); // LF_MODIFIER with class
+ Reference(TU); // LF_MODIFIER with union
+ Reference(FCNE); // LF_MODIFIER with enum
return SomeArray[argc];
}
diff --git a/llvm/test/DebugInfo/PDB/Inputs/every-type.pdb b/llvm/test/DebugInfo/PDB/Inputs/every-type.pdb
index 64996d61d3e..e70f0d74847 100644
--- a/llvm/test/DebugInfo/PDB/Inputs/every-type.pdb
+++ b/llvm/test/DebugInfo/PDB/Inputs/every-type.pdb
Binary files differ
diff --git a/llvm/test/DebugInfo/PDB/Inputs/every-type.yaml b/llvm/test/DebugInfo/PDB/Inputs/every-type.yaml
index 8f23e8ad5e8..191c49042be 100644
--- a/llvm/test/DebugInfo/PDB/Inputs/every-type.yaml
+++ b/llvm/test/DebugInfo/PDB/Inputs/every-type.yaml
@@ -222,7 +222,7 @@ TpiStream:
VBPtrType: 0x1001 # const int *
VBPtrOffset: 0
VTableIndex: 1
- # class Inherit : public FooClass {}; [Index: 0x1014]
+ # struct Inherit : public FooClass {}; [Index: 0x1014]
- Kind: LF_STRUCTURE
Class:
MemberCount: 1
@@ -242,6 +242,26 @@ TpiStream:
DerivationList: 0x1012
VTableShape: 0
Size: 4
+ # const volatile enum FooClass::Enum : uint32_t { [Index: 0x1016]
+ - Kind: LF_MODIFIER
+ Modifier:
+ ModifiedType: 0x100D
+ Modifiers: [ Const, Volatile ]
+ # const volatile struct Inherit : public FooClass {} { [Index: 0x1017]
+ - Kind: LF_MODIFIER
+ Modifier:
+ ModifiedType: 0x1014
+ Modifiers: [ Const, Volatile ]
+ # const volatile class FooClass { [Index: 0x1018]
+ - Kind: LF_MODIFIER
+ Modifier:
+ ModifiedType: 0x100F
+ Modifiers: [ Const, Volatile ]
+ # const volatile interface FooInterface { [Index: 0x1019]
+ - Kind: LF_MODIFIER
+ Modifier:
+ ModifiedType: 0x1011
+ Modifiers: [ Const, Volatile ]
# // Member type records. These are generally not length prefixed, and appear
# // inside of a field list record.
diff --git a/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test b/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
index f175a87d38a..ed2eb690190 100644
--- a/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
+++ b/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
@@ -12,7 +12,7 @@ DUMP-NEXT: symIndexId: 2
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::event_sourceAttribute::type_e
+DUMP-NEXT: name: FooClass::NestedEnum
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -36,7 +36,7 @@ DUMP-NEXT: symIndexId: 4
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::event_sourceAttribute::optimize_e
+DUMP-NEXT: name: __vc_attributes::event_sourceAttribute::type_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -60,7 +60,7 @@ DUMP-NEXT: symIndexId: 5
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::helper_attributes::v1_alttypeAttribute::type_e
+DUMP-NEXT: name: __vc_attributes::event_sourceAttribute::optimize_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -84,7 +84,7 @@ DUMP-NEXT: symIndexId: 6
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::helper_attributes::usageAttribute::usage_e
+DUMP-NEXT: name: __vc_attributes::helper_attributes::v1_alttypeAttribute::type_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -108,7 +108,7 @@ DUMP-NEXT: symIndexId: 7
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::threadingAttribute::threading_e
+DUMP-NEXT: name: __vc_attributes::helper_attributes::usageAttribute::usage_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -132,7 +132,7 @@ DUMP-NEXT: symIndexId: 8
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::aggregatableAttribute::type_e
+DUMP-NEXT: name: __vc_attributes::threadingAttribute::threading_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -156,7 +156,7 @@ DUMP-NEXT: symIndexId: 9
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::event_receiverAttribute::type_e
+DUMP-NEXT: name: __vc_attributes::aggregatableAttribute::type_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -180,7 +180,7 @@ DUMP-NEXT: symIndexId: 10
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: __vc_attributes::moduleAttribute::type_e
+DUMP-NEXT: name: __vc_attributes::event_receiverAttribute::type_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
@@ -204,7 +204,7 @@ DUMP-NEXT: symIndexId: 11
DUMP-NEXT: symTag: 12
DUMP-NEXT: baseType: 6
DUMP-NEXT: lexicalParentId: 0
-DUMP-NEXT: name: FooClass::NestedEnum
+DUMP-NEXT: name: __vc_attributes::moduleAttribute::type_e
DUMP-NEXT: typeId: 3
DUMP-NEXT: length: 4
DUMP-NEXT: constructor: 0
diff --git a/llvm/test/DebugInfo/PDB/every-type.test b/llvm/test/DebugInfo/PDB/every-type.test
index e6b9c15815d..f188c746e60 100644
--- a/llvm/test/DebugInfo/PDB/every-type.test
+++ b/llvm/test/DebugInfo/PDB/every-type.test
@@ -8,254 +8,252 @@ we claim to understand. We then test this in two ways:
hasn't changed.
-RUN: llvm-pdbutil dump -type-index=0x1018,0x102A,0x103B,0x1093,0x1095,0x1096,0x1098 \
+RUN: llvm-pdbutil dump -type-index=0x101A,0x102C,0x103D,0x104D,0x1098,0x10AA,0x10AC \
RUN: -dependents %p/Inputs/every-type.pdb | FileCheck --check-prefix=TYPES %s
RUN: llvm-pdbutil pdb2yaml -tpi-stream -ipi-stream %p/Inputs/every-type.pdb > %t.pdb.yaml
RUN: llvm-pdbutil yaml2pdb -pdb=%t.yaml.pdb %t.pdb.yaml
-RUN: llvm-pdbutil dump -type-index=0x1018,0x102A,0x103B,0x1093,0x1095,0x1096,0x1098 \
+RUN: llvm-pdbutil dump -type-index=0x101A,0x102C,0x103D,0x104D,0x1098,0x10AA,0x10AC \
RUN: -dependents %t.yaml.pdb | FileCheck --check-prefix=TYPES %s
TYPES: Types (TPI Stream)
TYPES-NEXT: ============================================================
-TYPES-NEXT: Showing 7 records and their dependents (73 records total)
-TYPES-NEXT: 0x1005 | LF_MODIFIER [size = 12]
+TYPES-NEXT: Showing 7 records and their dependents (72 records total)
+TYPES-NEXT: 0x1007 | LF_MODIFIER [size = 12]
TYPES-NEXT: referent = 0x0074 (int), modifiers = const
-TYPES-NEXT: 0x1006 | LF_CLASS [size = 48] `FooClass`
+TYPES-NEXT: 0x1008 | LF_CLASS [size = 48] `FooClass`
TYPES-NEXT: unique name: `.?AVFooClass@@`
TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: <no type>
-TYPES-NEXT: options: forward ref | has unique name
-TYPES-NEXT: 0x1007 | LF_VTSHAPE [size = 8]
-TYPES-NEXT: 0x1008 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1007, mode = pointer, opts = None, kind = ptr32
-TYPES-NEXT: 0x1009 | LF_CLASS [size = 44] `Inherit`
+TYPES-NEXT: options: forward ref | has unique name, sizeof 0
+TYPES-NEXT: 0x1009 | LF_VTSHAPE [size = 8]
+TYPES-NEXT: 0x100A | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x1009, mode = pointer, opts = None, kind = ptr64
+TYPES-NEXT: 0x100B | LF_CLASS [size = 44] `Inherit`
TYPES-NEXT: unique name: `.?AVInherit@@`
TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: <no type>
-TYPES-NEXT: options: forward ref | has unique name
-TYPES-NEXT: 0x100A | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1009, mode = pointer, opts = const, kind = ptr32
-TYPES-NEXT: 0x100B | LF_ARGLIST [size = 8]
-TYPES-NEXT: 0x100C | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100B
-TYPES-NEXT: class type = 0x1009, this type = 0x100A, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x100D | LF_MODIFIER [size = 12]
-TYPES-NEXT: referent = 0x1009, modifiers = const
-TYPES-NEXT: 0x100E | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x100D, mode = ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x100F | LF_ARGLIST [size = 12]
-TYPES-NEXT: 0x100E: `const Inherit&`
-TYPES-NEXT: 0x1010 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x100F
-TYPES-NEXT: class type = 0x1009, this type = 0x100A, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor
-TYPES-NEXT: 0x1011 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100B
-TYPES-NEXT: class type = 0x1009, this type = 0x100A, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor
-TYPES-NEXT: 0x1012 | LF_METHODLIST [size = 20]
-TYPES-NEXT: - Method [type = 0x1010, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1011, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: 0x1013 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1009, mode = ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x1014 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x1013, # args = 1, param list = 0x100F
-TYPES-NEXT: class type = 0x1009, this type = 0x100A, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x1015 | LF_ARGLIST [size = 12]
-TYPES-NEXT: 0x0075 (unsigned): `unsigned`
+TYPES-NEXT: options: forward ref | has unique name, sizeof 0
+TYPES-NEXT: 0x100C | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x100B, mode = pointer, opts = const, kind = ptr64
+TYPES-NEXT: 0x100D | LF_ARGLIST [size = 8]
+TYPES-NEXT: 0x100E | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100D
+TYPES-NEXT: class type = 0x100B, this type = 0x100C, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x100F | LF_MODIFIER [size = 12]
+TYPES-NEXT: referent = 0x100B, modifiers = const
+TYPES-NEXT: 0x1010 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x100F, mode = ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x1011 | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x1010: `const Inherit&`
+TYPES-NEXT: 0x1012 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1011
+TYPES-NEXT: class type = 0x100B, this type = 0x100C, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor
+TYPES-NEXT: 0x1013 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100D
+TYPES-NEXT: class type = 0x100B, this type = 0x100C, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor
+TYPES-NEXT: 0x1014 | LF_METHODLIST [size = 20]
+TYPES-NEXT: - Method [type = 0x1012, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x1013, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: 0x1015 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x100B, mode = ref, opts = None, kind = ptr64
TYPES-NEXT: 0x1016 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0403 (void*), # args = 1, param list = 0x1015
-TYPES-NEXT: class type = 0x1009, this type = 0x100A, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x1017 | LF_FIELDLIST [size = 152]
+TYPES-NEXT: return type = 0x1015, # args = 1, param list = 0x1011
+TYPES-NEXT: class type = 0x100B, this type = 0x100C, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x1017 | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x0075 (unsigned): `unsigned`
+TYPES-NEXT: 0x1018 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0603 (void*), # args = 1, param list = 0x1017
+TYPES-NEXT: class type = 0x100B, this type = 0x100C, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x1019 | LF_FIELDLIST [size = 152]
TYPES-NEXT: - LF_BCLASS
-TYPES-NEXT: type = 0x1006, offset = 4, attrs = public
-TYPES-NEXT: - LF_VFUNCTAB type = 0x1008
+TYPES-NEXT: type = 0x1008, offset = 8, attrs = public
+TYPES-NEXT: - LF_VFUNCTAB type = 0x100A
TYPES-NEXT: - LF_ONEMETHOD [name = `~Inherit`]
-TYPES-NEXT: type = 0x100C, vftable offset = 0, attrs = public intro virtual
-TYPES-NEXT: - LF_METHOD [name = `Inherit`, # overloads = 2, overload list = 0x1012]
+TYPES-NEXT: type = 0x100E, vftable offset = 0, attrs = public intro virtual
+TYPES-NEXT: - LF_METHOD [name = `Inherit`, # overloads = 2, overload list = 0x1014]
TYPES-NEXT: - LF_ONEMETHOD [name = `operator=`]
-TYPES-NEXT: type = 0x1014, vftable offset = -1, attrs = public compiler-generated
+TYPES-NEXT: type = 0x1016, vftable offset = -1, attrs = public compiler-generated
TYPES-NEXT: - LF_ONEMETHOD [name = `__local_vftable_ctor_closure`]
-TYPES-NEXT: type = 0x100C, vftable offset = -1, attrs = public compiler-generated
+TYPES-NEXT: type = 0x100E, vftable offset = -1, attrs = public compiler-generated
TYPES-NEXT: - LF_ONEMETHOD [name = `__vecDelDtor`]
-TYPES-NEXT: type = 0x1016, vftable offset = 0, attrs = public intro virtual compiler-generated
-TYPES-NEXT: 0x1018 | LF_CLASS [size = 44] `Inherit`
+TYPES-NEXT: type = 0x1018, vftable offset = 0, attrs = public intro virtual compiler-generated
+TYPES-NEXT: 0x101A | LF_CLASS [size = 44] `Inherit`
TYPES-NEXT: unique name: `.?AVInherit@@`
-TYPES-NEXT: vtable: 0x1007, base list: <no type>, field list: 0x1017
-TYPES-NEXT: options: has ctor / dtor | has unique name | overloaded operator | overloaded operator=
-TYPES-NEXT: 0x1019 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1005, mode = pointer, opts = None, kind = ptr32
-TYPES-NEXT: 0x101A | LF_CLASS [size = 48] `VInherit`
+TYPES-NEXT: vtable: 0x1009, base list: <no type>, field list: 0x1019
+TYPES-NEXT: options: has ctor / dtor | has unique name | overloaded operator | overloaded operator=, sizeof 16
+TYPES-NEXT: 0x101B | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x1007, mode = pointer, opts = None, kind = ptr64
+TYPES-NEXT: 0x101C | LF_CLASS [size = 48] `VInherit`
TYPES-NEXT: unique name: `.?AVVInherit@@`
TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: <no type>
-TYPES-NEXT: options: forward ref | has unique name
-TYPES-NEXT: 0x101B | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x101A, mode = pointer, opts = const, kind = ptr32
-TYPES-NEXT: 0x101C | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x101A, mode = rvalue ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x101D | LF_ARGLIST [size = 12]
-TYPES-NEXT: 0x101C: `VInherit&&`
-TYPES-NEXT: 0x101E | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x101D
-TYPES-NEXT: class type = 0x101A, this type = 0x101B, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor with virtual bases | constructor
-TYPES-NEXT: 0x101F | LF_MODIFIER [size = 12]
-TYPES-NEXT: referent = 0x101A, modifiers = const
-TYPES-NEXT: 0x1020 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x101F, mode = ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x1021 | LF_ARGLIST [size = 12]
-TYPES-NEXT: 0x1020: `const VInherit&`
-TYPES-NEXT: 0x1022 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1021
-TYPES-NEXT: class type = 0x101A, this type = 0x101B, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor with virtual bases | constructor
-TYPES-NEXT: 0x1023 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100B
-TYPES-NEXT: class type = 0x101A, this type = 0x101B, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor with virtual bases | constructor
-TYPES-NEXT: 0x1024 | LF_METHODLIST [size = 28]
-TYPES-NEXT: - Method [type = 0x101E, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1022, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1023, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: 0x1025 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x101A, mode = ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x1026 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x1025, # args = 1, param list = 0x101D
-TYPES-NEXT: class type = 0x101A, this type = 0x101B, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x1027 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x1025, # args = 1, param list = 0x1021
-TYPES-NEXT: class type = 0x101A, this type = 0x101B, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x1028 | LF_METHODLIST [size = 20]
-TYPES-NEXT: - Method [type = 0x1026, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1027, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: 0x1029 | LF_FIELDLIST [size = 60]
+TYPES-NEXT: options: forward ref | has unique name, sizeof 0
+TYPES-NEXT: 0x101D | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x101C, mode = pointer, opts = const, kind = ptr64
+TYPES-NEXT: 0x101E | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x101C, mode = rvalue ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x101F | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x101E: `VInherit&&`
+TYPES-NEXT: 0x1020 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x101F
+TYPES-NEXT: class type = 0x101C, this type = 0x101D, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor with virtual bases | constructor
+TYPES-NEXT: 0x1021 | LF_MODIFIER [size = 12]
+TYPES-NEXT: referent = 0x101C, modifiers = const
+TYPES-NEXT: 0x1022 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x1021, mode = ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x1023 | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x1022: `const VInherit&`
+TYPES-NEXT: 0x1024 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1023
+TYPES-NEXT: class type = 0x101C, this type = 0x101D, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor with virtual bases | constructor
+TYPES-NEXT: 0x1025 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100D
+TYPES-NEXT: class type = 0x101C, this type = 0x101D, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor with virtual bases | constructor
+TYPES-NEXT: 0x1026 | LF_METHODLIST [size = 28]
+TYPES-NEXT: - Method [type = 0x1020, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x1024, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x1025, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: 0x1027 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x101C, mode = ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x1028 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x1027, # args = 1, param list = 0x101F
+TYPES-NEXT: class type = 0x101C, this type = 0x101D, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x1029 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x1027, # args = 1, param list = 0x1023
+TYPES-NEXT: class type = 0x101C, this type = 0x101D, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x102A | LF_METHODLIST [size = 20]
+TYPES-NEXT: - Method [type = 0x1028, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x1029, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: 0x102B | LF_FIELDLIST [size = 60]
TYPES-NEXT: - LF_VBCLASS
-TYPES-NEXT: base = 0x1006, vbptr = 0x1019, vbptr offset = 0, vtable index = 1
+TYPES-NEXT: base = 0x1008, vbptr = 0x101B, vbptr offset = 0, vtable index = 1
TYPES-NEXT: attrs = public
-TYPES-NEXT: - LF_METHOD [name = `VInherit`, # overloads = 3, overload list = 0x1024]
-TYPES-NEXT: - LF_METHOD [name = `operator=`, # overloads = 2, overload list = 0x1028]
-TYPES-NEXT: 0x102A | LF_CLASS [size = 48] `VInherit`
+TYPES-NEXT: - LF_METHOD [name = `VInherit`, # overloads = 3, overload list = 0x1026]
+TYPES-NEXT: - LF_METHOD [name = `operator=`, # overloads = 2, overload list = 0x102A]
+TYPES-NEXT: 0x102C | LF_CLASS [size = 48] `VInherit`
TYPES-NEXT: unique name: `.?AVVInherit@@`
-TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x1029
-TYPES-NEXT: options: has ctor / dtor | has unique name | overloaded operator | overloaded operator=
-TYPES-NEXT: 0x102B | LF_CLASS [size = 48] `IVInherit`
+TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x102B
+TYPES-NEXT: options: has ctor / dtor | has unique name | overloaded operator | overloaded operator=, sizeof 16
+TYPES-NEXT: 0x102D | LF_CLASS [size = 48] `IVInherit`
TYPES-NEXT: unique name: `.?AVIVInherit@@`
TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: <no type>
-TYPES-NEXT: options: forward ref | has unique name
-TYPES-NEXT: 0x102C | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x102B, mode = pointer, opts = const, kind = ptr32
-TYPES-NEXT: 0x102D | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x102B, mode = rvalue ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x102E | LF_ARGLIST [size = 12]
-TYPES-NEXT: 0x102D: `IVInherit&&`
-TYPES-NEXT: 0x102F | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x102E
-TYPES-NEXT: class type = 0x102B, this type = 0x102C, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor with virtual bases | constructor
-TYPES-NEXT: 0x1030 | LF_MODIFIER [size = 12]
-TYPES-NEXT: referent = 0x102B, modifiers = const
-TYPES-NEXT: 0x1031 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1030, mode = ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x1032 | LF_ARGLIST [size = 12]
-TYPES-NEXT: 0x1031: `const IVInherit&`
-TYPES-NEXT: 0x1033 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1032
-TYPES-NEXT: class type = 0x102B, this type = 0x102C, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor with virtual bases | constructor
-TYPES-NEXT: 0x1034 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100B
-TYPES-NEXT: class type = 0x102B, this type = 0x102C, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = constructor with virtual bases | constructor
-TYPES-NEXT: 0x1035 | LF_METHODLIST [size = 28]
-TYPES-NEXT: - Method [type = 0x102F, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1033, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1034, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: 0x1036 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x102B, mode = ref, opts = None, kind = ptr32
-TYPES-NEXT: 0x1037 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x1036, # args = 1, param list = 0x102E
-TYPES-NEXT: class type = 0x102B, this type = 0x102C, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x1038 | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x1036, # args = 1, param list = 0x1032
-TYPES-NEXT: class type = 0x102B, this type = 0x102C, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x1039 | LF_METHODLIST [size = 20]
-TYPES-NEXT: - Method [type = 0x1037, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: - Method [type = 0x1038, vftable offset = -1, attrs = public compiler-generated]
-TYPES-NEXT: 0x103A | LF_FIELDLIST [size = 72]
+TYPES-NEXT: options: forward ref | has unique name, sizeof 0
+TYPES-NEXT: 0x102E | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x102D, mode = pointer, opts = const, kind = ptr64
+TYPES-NEXT: 0x102F | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x102D, mode = rvalue ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x1030 | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x102F: `IVInherit&&`
+TYPES-NEXT: 0x1031 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1030
+TYPES-NEXT: class type = 0x102D, this type = 0x102E, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor with virtual bases | constructor
+TYPES-NEXT: 0x1032 | LF_MODIFIER [size = 12]
+TYPES-NEXT: referent = 0x102D, modifiers = const
+TYPES-NEXT: 0x1033 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x1032, mode = ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x1034 | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x1033: `const IVInherit&`
+TYPES-NEXT: 0x1035 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1034
+TYPES-NEXT: class type = 0x102D, this type = 0x102E, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor with virtual bases | constructor
+TYPES-NEXT: 0x1036 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100D
+TYPES-NEXT: class type = 0x102D, this type = 0x102E, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = constructor with virtual bases | constructor
+TYPES-NEXT: 0x1037 | LF_METHODLIST [size = 28]
+TYPES-NEXT: - Method [type = 0x1031, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x1035, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x1036, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: 0x1038 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x102D, mode = ref, opts = None, kind = ptr64
+TYPES-NEXT: 0x1039 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x1038, # args = 1, param list = 0x1030
+TYPES-NEXT: class type = 0x102D, this type = 0x102E, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x103A | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x1038, # args = 1, param list = 0x1034
+TYPES-NEXT: class type = 0x102D, this type = 0x102E, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x103B | LF_METHODLIST [size = 20]
+TYPES-NEXT: - Method [type = 0x1039, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: - Method [type = 0x103A, vftable offset = -1, attrs = public compiler-generated]
+TYPES-NEXT: 0x103C | LF_FIELDLIST [size = 72]
TYPES-NEXT: - LF_BCLASS
-TYPES-NEXT: type = 0x101A, offset = 0, attrs = public
+TYPES-NEXT: type = 0x101C, offset = 0, attrs = public
TYPES-NEXT: - LF_IVBCLASS
-TYPES-NEXT: base = 0x1006, vbptr = 0x1019, vbptr offset = 0, vtable index = 1
+TYPES-NEXT: base = 0x1008, vbptr = 0x101B, vbptr offset = 0, vtable index = 1
TYPES-NEXT: attrs = public
-TYPES-NEXT: - LF_METHOD [name = `IVInherit`, # overloads = 3, overload list = 0x1035]
-TYPES-NEXT: - LF_METHOD [name = `operator=`, # overloads = 2, overload list = 0x1039]
-TYPES-NEXT: 0x103B | LF_CLASS [size = 48] `IVInherit`
+TYPES-NEXT: - LF_METHOD [name = `IVInherit`, # overloads = 3, overload list = 0x1037]
+TYPES-NEXT: - LF_METHOD [name = `operator=`, # overloads = 2, overload list = 0x103B]
+TYPES-NEXT: 0x103D | LF_CLASS [size = 48] `IVInherit`
TYPES-NEXT: unique name: `.?AVIVInherit@@`
-TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x103A
-TYPES-NEXT: options: has ctor / dtor | has unique name | overloaded operator | overloaded operator=
-TYPES-NEXT: 0x1087 | LF_FIELDLIST [size = 28]
+TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x103C
+TYPES-NEXT: options: has ctor / dtor | has unique name | overloaded operator | overloaded operator=, sizeof 16
+TYPES-NEXT: 0x1041 | LF_FIELDLIST [size = 28]
TYPES-NEXT: - LF_ENUMERATE [A = 0]
TYPES-NEXT: - LF_ENUMERATE [B = 1]
TYPES-NEXT: - LF_ENUMERATE [C = 2]
-TYPES-NEXT: 0x1088 | LF_ENUM [size = 64] `FooClass::NestedEnum`
+TYPES-NEXT: 0x1042 | LF_ENUM [size = 64] `FooClass::NestedEnum`
TYPES-NEXT: unique name: `.?AW4NestedEnum@FooClass@@`
-TYPES-NEXT: field list: 0x1087, underlying type: 0x0074 (int)
+TYPES-NEXT: field list: 0x1041, underlying type: 0x0074 (int)
TYPES-NEXT: options: has unique name | is nested
-TYPES-NEXT: 0x1089 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1006, mode = pointer, opts = const, kind = ptr32
-TYPES-NEXT: 0x108A | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100B
-TYPES-NEXT: class type = 0x1006, this type = 0x1089, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x108B | LF_ARGLIST [size = 16]
+TYPES-NEXT: 0x1043 | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x1008, mode = pointer, opts = const, kind = ptr64
+TYPES-NEXT: 0x1044 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100D
+TYPES-NEXT: class type = 0x1008, this type = 0x1043, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x1045 | LF_ARGLIST [size = 16]
TYPES-NEXT: 0x0074 (int): `int`
TYPES-NEXT: 0x0074 (int): `int`
-TYPES-NEXT: 0x108C | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 2, param list = 0x108B
-TYPES-NEXT: class type = 0x1006, this type = 0x1089, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x108D | LF_ARGLIST [size = 12]
+TYPES-NEXT: 0x1046 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 2, param list = 0x1045
+TYPES-NEXT: class type = 0x1008, this type = 0x1043, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x1047 | LF_ARGLIST [size = 12]
TYPES-NEXT: 0x0074 (int): `int`
-TYPES-NEXT: 0x108E | LF_MFUNCTION [size = 28]
-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x108D
-TYPES-NEXT: class type = 0x1006, this type = 0x1089, this adjust = 0
-TYPES-NEXT: calling conv = thiscall, options = None
-TYPES-NEXT: 0x108F | LF_METHODLIST [size = 20]
-TYPES-NEXT: - Method [type = 0x108C, vftable offset = -1, attrs = private]
-TYPES-NEXT: - Method [type = 0x108E, vftable offset = -1, attrs = private]
-TYPES-NEXT: 0x1090 | LF_BITFIELD [size = 12]
+TYPES-NEXT: 0x1048 | LF_MFUNCTION [size = 28]
+TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1047
+TYPES-NEXT: class type = 0x1008, this type = 0x1043, this adjust = 0
+TYPES-NEXT: calling conv = cdecl, options = None
+TYPES-NEXT: 0x1049 | LF_METHODLIST [size = 20]
+TYPES-NEXT: - Method [type = 0x1046, vftable offset = -1, attrs = public]
+TYPES-NEXT: - Method [type = 0x1048, vftable offset = -1, attrs = public]
+TYPES-NEXT: 0x104A | LF_BITFIELD [size = 12]
TYPES-NEXT: type = 0x0074 (int), bit offset = 0, # bits = 4
-TYPES-NEXT: 0x1091 | LF_BITFIELD [size = 12]
+TYPES-NEXT: 0x104B | LF_BITFIELD [size = 12]
TYPES-NEXT: type = 0x0074 (int), bit offset = 4, # bits = 4
-TYPES-NEXT: 0x1092 | LF_FIELDLIST [size = 164]
-TYPES-NEXT: - LF_NESTTYPE [name = `NestedEnum`, parent = 0x1088]
+TYPES-NEXT: 0x104C | LF_FIELDLIST [size = 164]
+TYPES-NEXT: - LF_NESTTYPE [name = `NestedEnum`, parent = 0x1042]
TYPES-NEXT: - LF_ONEMETHOD [name = `RegularMethod`]
-TYPES-NEXT: type = 0x108A, vftable offset = -1, attrs = private
-TYPES-NEXT: - LF_METHOD [name = `OverloadedMethod`, # overloads = 2, overload list = 0x108F]
-TYPES-NEXT: - LF_MEMBER [name = `HiNibble`, Type = 0x1090, offset = 0, attrs = private]
-TYPES-NEXT: - LF_MEMBER [name = `LoNibble`, Type = 0x1091, offset = 0, attrs = private]
-TYPES-NEXT: - LF_MEMBER [name = `EnumVariable`, Type = 0x1088, offset = 4, attrs = private]
-TYPES-NEXT: - LF_STMEMBER [name = `StaticMember`, type = 0x0403 (void*), attrs = private]
-TYPES-NEXT: 0x1093 | LF_CLASS [size = 48] `FooClass`
+TYPES-NEXT: type = 0x1044, vftable offset = -1, attrs = public
+TYPES-NEXT: - LF_METHOD [name = `OverloadedMethod`, # overloads = 2, overload list = 0x1049]
+TYPES-NEXT: - LF_MEMBER [name = `HiNibble`, Type = 0x104A, offset = 0, attrs = public]
+TYPES-NEXT: - LF_MEMBER [name = `LoNibble`, Type = 0x104B, offset = 0, attrs = public]
+TYPES-NEXT: - LF_MEMBER [name = `EnumVariable`, Type = 0x1042, offset = 4, attrs = public]
+TYPES-NEXT: - LF_STMEMBER [name = `StaticMember`, type = 0x0603 (void*), attrs = public]
+TYPES-NEXT: 0x104D | LF_CLASS [size = 48] `FooClass`
TYPES-NEXT: unique name: `.?AVFooClass@@`
-TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x1092
-TYPES-NEXT: options: contains nested class | has unique name
-TYPES-NEXT: 0x1094 | LF_FIELDLIST [size = 16]
-TYPES-NEXT: - LF_MEMBER [name = `X`, Type = 0x0074 (int), offset = 0, attrs = public]
-TYPES-NEXT: 0x1095 | LF_UNION [size = 40] `TheUnion`
+TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x104C
+TYPES-NEXT: options: contains nested class | has unique name, sizeof 8
+TYPES-NEXT: 0x1098 | LF_UNION [size = 40] `TheUnion`
TYPES-NEXT: unique name: `.?ATTheUnion@@`
-TYPES-NEXT: field list: 0x1094
-TYPES-NEXT: options: has unique name | sealed
-TYPES-NEXT: 0x1096 | LF_PROCEDURE [size = 16]
-TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100B
+TYPES-NEXT: field list: <no type>
+TYPES-NEXT: options: forward ref | has unique name, sizeof 0
+TYPES-NEXT: 0x10AA | LF_PROCEDURE [size = 16]
+TYPES-NEXT: return type = 0x0003 (void), # args = 0, param list = 0x100D
TYPES-NEXT: calling conv = cdecl, options = None
-TYPES-NEXT: 0x1097 | LF_POINTER [size = 12]
-TYPES-NEXT: referent = 0x1096, mode = pointer, opts = const, kind = ptr32
-TYPES-NEXT: 0x1098 | LF_ARRAY [size = 16]
-TYPES-NEXT: size: 4, index type: 0x0022 (unsigned long), element type: 0x1097
+TYPES-NEXT: 0x10AB | LF_POINTER [size = 12]
+TYPES-NEXT: referent = 0x10AA, mode = pointer, opts = const, kind = ptr64
+TYPES-NEXT: 0x10AC | LF_ARRAY [size = 16]
+TYPES-NEXT: size: 8, index type: 0x0023 (unsigned __int64), element type: 0x10AB
OpenPOWER on IntegriCloud