aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s2_6/T_isc.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s2_6/T_isc.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/s2_6/T_isc.x47135
1 files changed, 47135 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s2_6/T_isc.x b/final/ABI-Testsuite/test/s2_6/T_isc.x
new file mode 100755
index 00000000..27fd051f
--- /dev/null
+++ b/final/ABI-Testsuite/test/s2_6/T_isc.x
@@ -0,0 +1,47135 @@
+// This file is distributed under the University of Illinois Open Source License.
+// See LICENSE.TXT for details.
+// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
+// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
+// RUN: c_compiler -c %s -I "common" -o %t3.o
+// RUN: linker -o %t2%exeext %t1.o %t2.o %t3.o
+// RUN: runtool %t2%exeext | checker "TEST PASSED"
+#include "testsuite.h"
+#ifdef __cplusplus
+
+struct aa0 {
+ int a;
+ aa0(); // _ZN3aa0C1Ev
+ virtual void foo(); // _ZN3aa03fooEv
+ ~aa0(); // tgen
+};
+//SIG(-1 aa0) C1{ v1 Fi}
+
+
+ aa0 ::aa0(){ note_ctor("aa0", this);}
+void aa0 ::foo(){vfunc_called(this, "_ZN3aa03fooEv");}
+aa0 ::~aa0(){ note_dtor("aa0", this);} // tgen
+
+static void Test_aa0()
+{
+ extern Class_Descriptor cd_aa0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa0, buf);
+ aa0 *dp, &lv = *(dp=new (buf) aa0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa0)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa0.a");
+ test_class_info(&lv, &cd_aa0);
+ dp->~aa0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa0(Test_aa0, "aa0", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa0C1Ev();
+extern void _ZN3aa0D1Ev();
+Name_Map name_map_aa0[] = {
+ NSPAIR(_ZN3aa0C1Ev),
+ NSPAIR(_ZN3aa0D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa0[];
+extern void _ZN3aa03fooEv();
+static VTBL_ENTRY vtc_aa0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa0[0]),
+ (VTBL_ENTRY)&_ZN3aa03fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa0[];
+extern VTBL_ENTRY _ZTV3aa0[];
+Class_Descriptor cd_aa0 = { "aa0", // class name
+ 0,0,//no base classes
+ &(vtc_aa0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa0),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa0),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb0 {
+ int b;
+ bb0(); // _ZN3bb0C1Ev
+ virtual void foo(); // _ZN3bb03fooEv
+ ~bb0(); // tgen
+};
+//SIG(-1 bb0) C1{ v1 Fi}
+
+
+ bb0 ::bb0(){ note_ctor("bb0", this);}
+void bb0 ::foo(){vfunc_called(this, "_ZN3bb03fooEv");}
+bb0 ::~bb0(){ note_dtor("bb0", this);} // tgen
+
+static void Test_bb0()
+{
+ extern Class_Descriptor cd_bb0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb0, buf);
+ bb0 *dp, &lv = *(dp=new (buf) bb0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb0)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb0.b");
+ test_class_info(&lv, &cd_bb0);
+ dp->~bb0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb0(Test_bb0, "bb0", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb0C1Ev();
+extern void _ZN3bb0D1Ev();
+Name_Map name_map_bb0[] = {
+ NSPAIR(_ZN3bb0C1Ev),
+ NSPAIR(_ZN3bb0D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb0[];
+extern void _ZN3bb03fooEv();
+static VTBL_ENTRY vtc_bb0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb0[0]),
+ (VTBL_ENTRY)&_ZN3bb03fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb0[];
+extern VTBL_ENTRY _ZTV3bb0[];
+Class_Descriptor cd_bb0 = { "bb0", // class name
+ 0,0,//no base classes
+ &(vtc_bb0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb0),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb0),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc0 {
+ int c;
+ cc0(); // _ZN3cc0C1Ev
+ virtual void foo(); // _ZN3cc03fooEv
+ ~cc0(); // tgen
+};
+//SIG(-1 cc0) C1{ v1 Fi}
+
+
+ cc0 ::cc0(){ note_ctor("cc0", this);}
+void cc0 ::foo(){vfunc_called(this, "_ZN3cc03fooEv");}
+cc0 ::~cc0(){ note_dtor("cc0", this);} // tgen
+
+static void Test_cc0()
+{
+ extern Class_Descriptor cd_cc0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc0, buf);
+ cc0 *dp, &lv = *(dp=new (buf) cc0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc0)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc0.c");
+ test_class_info(&lv, &cd_cc0);
+ dp->~cc0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc0(Test_cc0, "cc0", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc0C1Ev();
+extern void _ZN3cc0D1Ev();
+Name_Map name_map_cc0[] = {
+ NSPAIR(_ZN3cc0C1Ev),
+ NSPAIR(_ZN3cc0D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc0[];
+extern void _ZN3cc03fooEv();
+static VTBL_ENTRY vtc_cc0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc0[0]),
+ (VTBL_ENTRY)&_ZN3cc03fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc0[];
+extern VTBL_ENTRY _ZTV3cc0[];
+Class_Descriptor cd_cc0 = { "cc0", // class name
+ 0,0,//no base classes
+ &(vtc_cc0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc0),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc0),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0 {
+ int d;
+ dd0(); // _ZN3dd0C1Ev
+ virtual void foo(); // _ZN3dd03fooEv
+ ~dd0(); // tgen
+};
+//SIG(-1 dd0) C1{ v1 Fi}
+
+
+ dd0 ::dd0(){ note_ctor("dd0", this);}
+void dd0 ::foo(){vfunc_called(this, "_ZN3dd03fooEv");}
+dd0 ::~dd0(){ note_dtor("dd0", this);} // tgen
+
+static void Test_dd0()
+{
+ extern Class_Descriptor cd_dd0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd0, buf);
+ dd0 *dp, &lv = *(dp=new (buf) dd0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd0.d");
+ test_class_info(&lv, &cd_dd0);
+ dp->~dd0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0(Test_dd0, "dd0", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd0C1Ev();
+extern void _ZN3dd0D1Ev();
+Name_Map name_map_dd0[] = {
+ NSPAIR(_ZN3dd0C1Ev),
+ NSPAIR(_ZN3dd0D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd0[];
+extern void _ZN3dd03fooEv();
+static VTBL_ENTRY vtc_dd0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd0[0]),
+ (VTBL_ENTRY)&_ZN3dd03fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd0[];
+extern VTBL_ENTRY _ZTV3dd0[];
+Class_Descriptor cd_dd0 = { "dd0", // class name
+ 0,0,//no base classes
+ &(vtc_dd0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd0),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd0),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee0 : aa0 , bb0 {
+ int e;
+ ee0(); // _ZN3ee0C1Ev
+ virtual void foo(); // _ZN3ee03fooEv
+ ~ee0(); // tgen
+};
+//SIG(-1 ee0) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee0 ::ee0(){ note_ctor("ee0", this);}
+void ee0 ::foo(){vfunc_called(this, "_ZN3ee03fooEv");}
+ee0 ::~ee0(){ note_dtor("ee0", this);} // tgen
+
+static void Test_ee0()
+{
+ extern Class_Descriptor cd_ee0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee0, buf);
+ ee0 *dp, &lv = *(dp=new (buf) ee0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee0)");
+ check_base_class_offset(lv, (aa0*), 0, "ee0");
+ check_base_class_offset(lv, (bb0*), ABISELECT(16,8), "ee0");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee0.e");
+ test_class_info(&lv, &cd_ee0);
+ dp->~ee0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee0(Test_ee0, "ee0", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee0C1Ev();
+extern void _ZN3ee0D1Ev();
+Name_Map name_map_ee0[] = {
+ NSPAIR(_ZN3ee0C1Ev),
+ NSPAIR(_ZN3ee0D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern VTBL_ENTRY _ZTV3aa0[];
+extern Class_Descriptor cd_bb0;
+extern VTBL_ENTRY _ZTI3bb0[];
+extern VTBL_ENTRY _ZTV3bb0[];
+static Base_Class bases_ee0[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb0, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee0[];
+extern void _ZN3ee03fooEv();
+extern void ABISELECT(_ZThn16_N3ee03fooEv,_ZThn8_N3ee03fooEv)();
+static VTBL_ENTRY vtc_ee0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee0[0]),
+ (VTBL_ENTRY)&_ZN3ee03fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ee0[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ee03fooEv,_ZThn8_N3ee03fooEv),
+};
+extern VTBL_ENTRY _ZTI3ee0[];
+extern VTBL_ENTRY _ZTV3ee0[];
+Class_Descriptor cd_ee0 = { "ee0", // class name
+ bases_ee0, 2,
+ &(vtc_ee0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee0),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee0),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff0 : cc0 , dd0 {
+ int f;
+ ff0(); // _ZN3ff0C1Ev
+ virtual void foo(); // _ZN3ff03fooEv
+ ~ff0(); // tgen
+};
+//SIG(-1 ff0) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff0 ::ff0(){ note_ctor("ff0", this);}
+void ff0 ::foo(){vfunc_called(this, "_ZN3ff03fooEv");}
+ff0 ::~ff0(){ note_dtor("ff0", this);} // tgen
+
+static void Test_ff0()
+{
+ extern Class_Descriptor cd_ff0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff0, buf);
+ ff0 *dp, &lv = *(dp=new (buf) ff0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff0)");
+ check_base_class_offset(lv, (cc0*), 0, "ff0");
+ check_base_class_offset(lv, (dd0*), ABISELECT(16,8), "ff0");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff0.f");
+ test_class_info(&lv, &cd_ff0);
+ dp->~ff0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff0(Test_ff0, "ff0", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff0C1Ev();
+extern void _ZN3ff0D1Ev();
+Name_Map name_map_ff0[] = {
+ NSPAIR(_ZN3ff0C1Ev),
+ NSPAIR(_ZN3ff0D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc0;
+extern VTBL_ENTRY _ZTI3cc0[];
+extern VTBL_ENTRY _ZTV3cc0[];
+extern Class_Descriptor cd_dd0;
+extern VTBL_ENTRY _ZTI3dd0[];
+extern VTBL_ENTRY _ZTV3dd0[];
+static Base_Class bases_ff0[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd0, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff0[];
+extern void _ZN3ff03fooEv();
+extern void ABISELECT(_ZThn16_N3ff03fooEv,_ZThn8_N3ff03fooEv)();
+static VTBL_ENTRY vtc_ff0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff0[0]),
+ (VTBL_ENTRY)&_ZN3ff03fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ff0[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ff03fooEv,_ZThn8_N3ff03fooEv),
+};
+extern VTBL_ENTRY _ZTI3ff0[];
+extern VTBL_ENTRY _ZTV3ff0[];
+Class_Descriptor cd_ff0 = { "ff0", // class name
+ bases_ff0, 2,
+ &(vtc_ff0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff0),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff0),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg0 : ee0 , ff0 {
+ int g;
+ gg0(); // _ZN3gg0C1Ev
+ virtual void foo(); // _ZN3gg03fooEv
+ ~gg0(); // tgen
+};
+//SIG(1 gg0) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg0 ::gg0(){ note_ctor("gg0", this);}
+void gg0 ::foo(){vfunc_called(this, "_ZN3gg03fooEv");}
+gg0 ::~gg0(){ note_dtor("gg0", this);} // tgen
+
+static void Test_gg0()
+{
+ extern Class_Descriptor cd_gg0;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg0, buf);
+ gg0 *dp, &lv = *(dp=new (buf) gg0());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg0)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg0)");
+ check_base_class_offset(lv, (aa0*)(ee0*), 0, "gg0");
+ check_base_class_offset(lv, (bb0*)(ee0*), ABISELECT(16,8), "gg0");
+ check_base_class_offset(lv, (ee0*), 0, "gg0");
+ check_base_class_offset(lv, (cc0*)(ff0*), ABISELECT(32,20), "gg0");
+ check_base_class_offset(lv, (dd0*)(ff0*), ABISELECT(48,28), "gg0");
+ check_base_class_offset(lv, (ff0*), ABISELECT(32,20), "gg0");
+ check_field_offset(lv, g, ABISELECT(64,40), "gg0.g");
+ test_class_info(&lv, &cd_gg0);
+ dp->~gg0();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg0(Test_gg0, "gg0", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg0C1Ev();
+extern void _ZN3gg0D1Ev();
+Name_Map name_map_gg0[] = {
+ NSPAIR(_ZN3gg0C1Ev),
+ NSPAIR(_ZN3gg0D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern VTBL_ENTRY _ZTV3aa0[];
+extern Class_Descriptor cd_bb0;
+extern VTBL_ENTRY _ZTI3bb0[];
+extern VTBL_ENTRY _ZTV3bb0[];
+extern Class_Descriptor cd_ee0;
+extern VTBL_ENTRY _ZTI3ee0[];
+extern VTBL_ENTRY _ZTV3ee0[];
+extern Class_Descriptor cd_cc0;
+extern VTBL_ENTRY _ZTI3cc0[];
+extern VTBL_ENTRY _ZTV3cc0[];
+extern Class_Descriptor cd_dd0;
+extern VTBL_ENTRY _ZTI3dd0[];
+extern VTBL_ENTRY _ZTV3dd0[];
+extern Class_Descriptor cd_ff0;
+extern VTBL_ENTRY _ZTI3ff0[];
+extern VTBL_ENTRY _ZTV3ff0[];
+static Base_Class bases_gg0[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb0, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd0, ABISELECT(48,28), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff0, ABISELECT(32,20), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg0[];
+extern void _ZN3gg03fooEv();
+extern void ABISELECT(_ZThn16_N3gg03fooEv,_ZThn8_N3gg03fooEv)();
+extern void ABISELECT(_ZThn32_N3gg03fooEv,_ZThn20_N3gg03fooEv)();
+extern void ABISELECT(_ZThn48_N3gg03fooEv,_ZThn28_N3gg03fooEv)();
+static VTBL_ENTRY vtc_gg0[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg0[0]),
+ (VTBL_ENTRY)&_ZN3gg03fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3gg0[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg03fooEv,_ZThn8_N3gg03fooEv),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI3gg0[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N3gg03fooEv,_ZThn20_N3gg03fooEv),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI3gg0[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn48_N3gg03fooEv,_ZThn28_N3gg03fooEv),
+};
+extern VTBL_ENTRY _ZTI3gg0[];
+extern VTBL_ENTRY _ZTV3gg0[];
+Class_Descriptor cd_gg0 = { "gg0", // class name
+ bases_gg0, 6,
+ &(vtc_gg0[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg0),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg0),12, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 6, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa1 {
+ int a;
+ aa1(); // _ZN3aa1C1Ev
+ virtual void foo(); // _ZN3aa13fooEv
+ ~aa1(); // tgen
+};
+//SIG(-1 aa1) C1{ v1 Fi}
+
+
+ aa1 ::aa1(){ note_ctor("aa1", this);}
+void aa1 ::foo(){vfunc_called(this, "_ZN3aa13fooEv");}
+aa1 ::~aa1(){ note_dtor("aa1", this);} // tgen
+
+static void Test_aa1()
+{
+ extern Class_Descriptor cd_aa1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa1, buf);
+ aa1 *dp, &lv = *(dp=new (buf) aa1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa1)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa1.a");
+ test_class_info(&lv, &cd_aa1);
+ dp->~aa1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa1(Test_aa1, "aa1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa1C1Ev();
+extern void _ZN3aa1D1Ev();
+Name_Map name_map_aa1[] = {
+ NSPAIR(_ZN3aa1C1Ev),
+ NSPAIR(_ZN3aa1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa1[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_aa1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa1[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+Class_Descriptor cd_aa1 = { "aa1", // class name
+ 0,0,//no base classes
+ &(vtc_aa1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa1),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb1 {
+ int b;
+ bb1(); // _ZN3bb1C1Ev
+ virtual void foo(); // _ZN3bb13fooEv
+ ~bb1(); // tgen
+};
+//SIG(-1 bb1) C1{ v1 Fi}
+
+
+ bb1 ::bb1(){ note_ctor("bb1", this);}
+void bb1 ::foo(){vfunc_called(this, "_ZN3bb13fooEv");}
+bb1 ::~bb1(){ note_dtor("bb1", this);} // tgen
+
+static void Test_bb1()
+{
+ extern Class_Descriptor cd_bb1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb1, buf);
+ bb1 *dp, &lv = *(dp=new (buf) bb1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb1)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb1.b");
+ test_class_info(&lv, &cd_bb1);
+ dp->~bb1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb1(Test_bb1, "bb1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb1C1Ev();
+extern void _ZN3bb1D1Ev();
+Name_Map name_map_bb1[] = {
+ NSPAIR(_ZN3bb1C1Ev),
+ NSPAIR(_ZN3bb1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb1[];
+extern void _ZN3bb13fooEv();
+static VTBL_ENTRY vtc_bb1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb1[0]),
+ (VTBL_ENTRY)&_ZN3bb13fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb1[];
+extern VTBL_ENTRY _ZTV3bb1[];
+Class_Descriptor cd_bb1 = { "bb1", // class name
+ 0,0,//no base classes
+ &(vtc_bb1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb1),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc1 {
+ int c;
+ cc1(); // _ZN3cc1C1Ev
+ virtual void foo(); // _ZN3cc13fooEv
+ ~cc1(); // tgen
+};
+//SIG(-1 cc1) C1{ v1 Fi}
+
+
+ cc1 ::cc1(){ note_ctor("cc1", this);}
+void cc1 ::foo(){vfunc_called(this, "_ZN3cc13fooEv");}
+cc1 ::~cc1(){ note_dtor("cc1", this);} // tgen
+
+static void Test_cc1()
+{
+ extern Class_Descriptor cd_cc1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc1, buf);
+ cc1 *dp, &lv = *(dp=new (buf) cc1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc1)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc1.c");
+ test_class_info(&lv, &cd_cc1);
+ dp->~cc1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc1(Test_cc1, "cc1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc1C1Ev();
+extern void _ZN3cc1D1Ev();
+Name_Map name_map_cc1[] = {
+ NSPAIR(_ZN3cc1C1Ev),
+ NSPAIR(_ZN3cc1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc1[];
+extern void _ZN3cc13fooEv();
+static VTBL_ENTRY vtc_cc1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc1[0]),
+ (VTBL_ENTRY)&_ZN3cc13fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc1[];
+extern VTBL_ENTRY _ZTV3cc1[];
+Class_Descriptor cd_cc1 = { "cc1", // class name
+ 0,0,//no base classes
+ &(vtc_cc1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc1),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1 {
+ int d;
+ dd1(); // _ZN3dd1C1Ev
+ virtual void foo(); // _ZN3dd13fooEv
+ ~dd1(); // tgen
+};
+//SIG(-1 dd1) C1{ v1 Fi}
+
+
+ dd1 ::dd1(){ note_ctor("dd1", this);}
+void dd1 ::foo(){vfunc_called(this, "_ZN3dd13fooEv");}
+dd1 ::~dd1(){ note_dtor("dd1", this);} // tgen
+
+static void Test_dd1()
+{
+ extern Class_Descriptor cd_dd1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd1, buf);
+ dd1 *dp, &lv = *(dp=new (buf) dd1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1.d");
+ test_class_info(&lv, &cd_dd1);
+ dp->~dd1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1(Test_dd1, "dd1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd1C1Ev();
+extern void _ZN3dd1D1Ev();
+Name_Map name_map_dd1[] = {
+ NSPAIR(_ZN3dd1C1Ev),
+ NSPAIR(_ZN3dd1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd1[];
+extern void _ZN3dd13fooEv();
+static VTBL_ENTRY vtc_dd1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd1[0]),
+ (VTBL_ENTRY)&_ZN3dd13fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd1[];
+extern VTBL_ENTRY _ZTV3dd1[];
+Class_Descriptor cd_dd1 = { "dd1", // class name
+ 0,0,//no base classes
+ &(vtc_dd1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd1),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee1 : virtual aa1 , bb1 {
+ int e;
+ ee1(const ABISELECT(__tsi64,int) *const *); // _ZN3ee1C2Ev
+ virtual void foo(); // _ZN3ee13fooEv
+ ~ee1(); // tgen
+ ee1(); // tgen
+};
+//SIG(-1 ee1) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee1 ::ee1(const ABISELECT(__tsi64,int) *const *){}
+void ee1 ::foo(){vfunc_called(this, "_ZN3ee13fooEv");}
+ee1 ::~ee1(){ note_dtor("ee1", this);} // tgen
+ee1 ::ee1(){ note_ctor("ee1", this);} // tgen
+
+static void Test_ee1()
+{
+ extern Class_Descriptor cd_ee1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee1, buf);
+ ee1 *dp, &lv = *(dp=new (buf) ee1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee1)");
+ check_base_class_offset(lv, (aa1*), ABISELECT(16,12), "ee1");
+ check_base_class_offset(lv, (bb1*), 0, "ee1");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee1.e");
+ test_class_info(&lv, &cd_ee1);
+ dp->~ee1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee1(Test_ee1, "ee1", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee1C1Ev();
+extern void _ZN3ee1D1Ev();
+Name_Map name_map_ee1[] = {
+ NSPAIR(_ZN3ee1C1Ev),
+ NSPAIR(_ZN3ee1D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb1;
+extern VTBL_ENTRY _ZTI3bb1[];
+extern VTBL_ENTRY _ZTV3bb1[];
+static Base_Class bases_ee1[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee1[];
+extern void _ZN3ee13fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee13fooEv,_ZTv0_n12_N3ee13fooEv)();
+extern void ABISELECT(_ZThn16_N3ee13fooEv,_ZThn12_N3ee13fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee1[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee1[0]),
+ (VTBL_ENTRY)&_ZN3ee13fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ee1[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee13fooEv,_ZTv0_n12_N3ee13fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee1[];
+static VTT_ENTRY vtt_ee1[] = {
+ {&(_ZTV3ee1[3]), 3,8},
+ {&(_ZTV3ee1[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ee1[];
+extern VTBL_ENTRY _ZTV3ee1[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee1[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee13fooEv,_ZTv0_n12_N3ee13fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee13fooEv,_ZThn12_N3ee13fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee1 = { "ee1", // class name
+ bases_ee1, 2,
+ &(vtc_ee1[0]), // expected_vtbl_contents
+ &(vtt_ee1[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee1),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee1),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee1),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff1 : cc1 , dd1 {
+ int f;
+ ff1(); // _ZN3ff1C1Ev
+ virtual void foo(); // _ZN3ff13fooEv
+ ~ff1(); // tgen
+};
+//SIG(-1 ff1) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff1 ::ff1(){ note_ctor("ff1", this);}
+void ff1 ::foo(){vfunc_called(this, "_ZN3ff13fooEv");}
+ff1 ::~ff1(){ note_dtor("ff1", this);} // tgen
+
+static void Test_ff1()
+{
+ extern Class_Descriptor cd_ff1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff1, buf);
+ ff1 *dp, &lv = *(dp=new (buf) ff1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff1)");
+ check_base_class_offset(lv, (cc1*), 0, "ff1");
+ check_base_class_offset(lv, (dd1*), ABISELECT(16,8), "ff1");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff1.f");
+ test_class_info(&lv, &cd_ff1);
+ dp->~ff1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff1(Test_ff1, "ff1", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff1C1Ev();
+extern void _ZN3ff1D1Ev();
+Name_Map name_map_ff1[] = {
+ NSPAIR(_ZN3ff1C1Ev),
+ NSPAIR(_ZN3ff1D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc1;
+extern VTBL_ENTRY _ZTI3cc1[];
+extern VTBL_ENTRY _ZTV3cc1[];
+extern Class_Descriptor cd_dd1;
+extern VTBL_ENTRY _ZTI3dd1[];
+extern VTBL_ENTRY _ZTV3dd1[];
+static Base_Class bases_ff1[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd1, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff1[];
+extern void _ZN3ff13fooEv();
+extern void ABISELECT(_ZThn16_N3ff13fooEv,_ZThn8_N3ff13fooEv)();
+static VTBL_ENTRY vtc_ff1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff1[0]),
+ (VTBL_ENTRY)&_ZN3ff13fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ff1[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ff13fooEv,_ZThn8_N3ff13fooEv),
+};
+extern VTBL_ENTRY _ZTI3ff1[];
+extern VTBL_ENTRY _ZTV3ff1[];
+Class_Descriptor cd_ff1 = { "ff1", // class name
+ bases_ff1, 2,
+ &(vtc_ff1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff1),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff1),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg1 : ee1 , ff1 {
+ int g;
+ gg1(const ABISELECT(__tsi64,int) *const *); // _ZN3gg1C2Ev
+ virtual void foo(); // _ZN3gg13fooEv
+ ~gg1(); // tgen
+ gg1(); // tgen
+};
+//SIG(1 gg1) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg1 ::gg1(const ABISELECT(__tsi64,int) *const *){}
+void gg1 ::foo(){vfunc_called(this, "_ZN3gg13fooEv");}
+gg1 ::~gg1(){ note_dtor("gg1", this);} // tgen
+gg1 ::gg1(){ note_ctor("gg1", this);} // tgen
+
+static void Test_gg1()
+{
+ extern Class_Descriptor cd_gg1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg1, buf);
+ gg1 *dp, &lv = *(dp=new (buf) gg1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg1)");
+ check_base_class_offset(lv, (aa1*)(ee1*), ABISELECT(56,36), "gg1");
+ check_base_class_offset(lv, (bb1*)(ee1*), 0, "gg1");
+ check_base_class_offset(lv, (ee1*), 0, "gg1");
+ check_base_class_offset(lv, (cc1*)(ff1*), ABISELECT(16,12), "gg1");
+ check_base_class_offset(lv, (dd1*)(ff1*), ABISELECT(32,20), "gg1");
+ check_base_class_offset(lv, (ff1*), ABISELECT(16,12), "gg1");
+ check_field_offset(lv, g, ABISELECT(48,32), "gg1.g");
+ test_class_info(&lv, &cd_gg1);
+ dp->~gg1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg1(Test_gg1, "gg1", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg1C1Ev();
+extern void _ZN3gg1D1Ev();
+Name_Map name_map_gg1[] = {
+ NSPAIR(_ZN3gg1C1Ev),
+ NSPAIR(_ZN3gg1D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb1;
+extern VTBL_ENTRY _ZTI3bb1[];
+extern VTBL_ENTRY _ZTV3bb1[];
+extern Class_Descriptor cd_ee1;
+extern VTBL_ENTRY _ZTI3ee1[];
+extern VTBL_ENTRY _ZTV3ee1[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee1[];
+extern Class_Descriptor cd_cc1;
+extern VTBL_ENTRY _ZTI3cc1[];
+extern VTBL_ENTRY _ZTV3cc1[];
+extern Class_Descriptor cd_dd1;
+extern VTBL_ENTRY _ZTI3dd1[];
+extern VTBL_ENTRY _ZTV3dd1[];
+extern Class_Descriptor cd_ff1;
+extern VTBL_ENTRY _ZTI3ff1[];
+extern VTBL_ENTRY _ZTV3ff1[];
+static Base_Class bases_gg1[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(56,36), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd1, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg1[];
+extern void _ZN3gg13fooEv();
+extern void ABISELECT(_ZThn16_N3gg13fooEv,_ZThn12_N3gg13fooEv)();
+extern void ABISELECT(_ZThn32_N3gg13fooEv,_ZThn20_N3gg13fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg13fooEv,_ZTv0_n12_N3gg13fooEv)();
+extern void ABISELECT(_ZThn56_N3gg13fooEv,_ZThn36_N3gg13fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg1[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg1[0]),
+ (VTBL_ENTRY)&_ZN3gg13fooEv,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3gg1[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg13fooEv,_ZThn12_N3gg13fooEv),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI3gg1[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N3gg13fooEv,_ZThn20_N3gg13fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg1[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg13fooEv,_ZTv0_n12_N3gg13fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg1[];
+extern void _ZN3ee13fooEv();
+static VTBL_ENTRY _tg__ZTV3ee1__3gg1[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee1[0]),
+ (VTBL_ENTRY)&_ZN3ee13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee13fooEv,_ZTv0_n12_N3ee13fooEv)();
+extern void ABISELECT(_ZThn56_N3ee13fooEv,_ZThn36_N3ee13fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__3ee1__3gg1[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3ee1[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee13fooEv,_ZTv0_n12_N3ee13fooEv),
+};
+static VTT_ENTRY vtt_gg1[] = {
+ {&(_ZTV3gg1[3]), 3,14},
+ {&(_tg__ZTV3ee1__3gg1[3]), 3,4},
+ {&(_tg__ZTV3aa1__3ee1__3gg1[3]), 3,4},
+ {&(_ZTV3gg1[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI3gg1[];
+extern VTBL_ENTRY _ZTV3gg1[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg1[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee13fooEv,_ZTv0_n12_N3ee13fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3ee13fooEv,_ZThn36_N3ee13fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg13fooEv,_ZTv0_n12_N3gg13fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg13fooEv,_ZThn36_N3gg13fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg1 = { "gg1", // class name
+ bases_gg1, 6,
+ &(vtc_gg1[0]), // expected_vtbl_contents
+ &(vtt_gg1[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg1),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg1),14, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg1),4, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa2 {
+ int a;
+ aa2(); // _ZN3aa2C1Ev
+ virtual void foo(); // _ZN3aa23fooEv
+ ~aa2(); // tgen
+};
+//SIG(-1 aa2) C1{ v1 Fi}
+
+
+ aa2 ::aa2(){ note_ctor("aa2", this);}
+void aa2 ::foo(){vfunc_called(this, "_ZN3aa23fooEv");}
+aa2 ::~aa2(){ note_dtor("aa2", this);} // tgen
+
+static void Test_aa2()
+{
+ extern Class_Descriptor cd_aa2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa2, buf);
+ aa2 *dp, &lv = *(dp=new (buf) aa2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa2)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa2.a");
+ test_class_info(&lv, &cd_aa2);
+ dp->~aa2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa2(Test_aa2, "aa2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa2C1Ev();
+extern void _ZN3aa2D1Ev();
+Name_Map name_map_aa2[] = {
+ NSPAIR(_ZN3aa2C1Ev),
+ NSPAIR(_ZN3aa2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa2[];
+extern void _ZN3aa23fooEv();
+static VTBL_ENTRY vtc_aa2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa2[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+Class_Descriptor cd_aa2 = { "aa2", // class name
+ 0,0,//no base classes
+ &(vtc_aa2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa2),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb2 {
+ int b;
+ bb2(); // _ZN3bb2C1Ev
+ virtual void foo(); // _ZN3bb23fooEv
+ ~bb2(); // tgen
+};
+//SIG(-1 bb2) C1{ v1 Fi}
+
+
+ bb2 ::bb2(){ note_ctor("bb2", this);}
+void bb2 ::foo(){vfunc_called(this, "_ZN3bb23fooEv");}
+bb2 ::~bb2(){ note_dtor("bb2", this);} // tgen
+
+static void Test_bb2()
+{
+ extern Class_Descriptor cd_bb2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb2, buf);
+ bb2 *dp, &lv = *(dp=new (buf) bb2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb2)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb2.b");
+ test_class_info(&lv, &cd_bb2);
+ dp->~bb2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb2(Test_bb2, "bb2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb2C1Ev();
+extern void _ZN3bb2D1Ev();
+Name_Map name_map_bb2[] = {
+ NSPAIR(_ZN3bb2C1Ev),
+ NSPAIR(_ZN3bb2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb2[];
+extern void _ZN3bb23fooEv();
+static VTBL_ENTRY vtc_bb2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb2[0]),
+ (VTBL_ENTRY)&_ZN3bb23fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb2[];
+extern VTBL_ENTRY _ZTV3bb2[];
+Class_Descriptor cd_bb2 = { "bb2", // class name
+ 0,0,//no base classes
+ &(vtc_bb2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb2),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc2 {
+ int c;
+ cc2(); // _ZN3cc2C1Ev
+ virtual void foo(); // _ZN3cc23fooEv
+ ~cc2(); // tgen
+};
+//SIG(-1 cc2) C1{ v1 Fi}
+
+
+ cc2 ::cc2(){ note_ctor("cc2", this);}
+void cc2 ::foo(){vfunc_called(this, "_ZN3cc23fooEv");}
+cc2 ::~cc2(){ note_dtor("cc2", this);} // tgen
+
+static void Test_cc2()
+{
+ extern Class_Descriptor cd_cc2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc2, buf);
+ cc2 *dp, &lv = *(dp=new (buf) cc2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc2)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc2.c");
+ test_class_info(&lv, &cd_cc2);
+ dp->~cc2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc2(Test_cc2, "cc2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc2C1Ev();
+extern void _ZN3cc2D1Ev();
+Name_Map name_map_cc2[] = {
+ NSPAIR(_ZN3cc2C1Ev),
+ NSPAIR(_ZN3cc2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc2[];
+extern void _ZN3cc23fooEv();
+static VTBL_ENTRY vtc_cc2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc2[0]),
+ (VTBL_ENTRY)&_ZN3cc23fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc2[];
+extern VTBL_ENTRY _ZTV3cc2[];
+Class_Descriptor cd_cc2 = { "cc2", // class name
+ 0,0,//no base classes
+ &(vtc_cc2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc2),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2 {
+ int d;
+ dd2(); // _ZN3dd2C1Ev
+ virtual void foo(); // _ZN3dd23fooEv
+ ~dd2(); // tgen
+};
+//SIG(-1 dd2) C1{ v1 Fi}
+
+
+ dd2 ::dd2(){ note_ctor("dd2", this);}
+void dd2 ::foo(){vfunc_called(this, "_ZN3dd23fooEv");}
+dd2 ::~dd2(){ note_dtor("dd2", this);} // tgen
+
+static void Test_dd2()
+{
+ extern Class_Descriptor cd_dd2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd2, buf);
+ dd2 *dp, &lv = *(dp=new (buf) dd2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd2.d");
+ test_class_info(&lv, &cd_dd2);
+ dp->~dd2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2(Test_dd2, "dd2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd2C1Ev();
+extern void _ZN3dd2D1Ev();
+Name_Map name_map_dd2[] = {
+ NSPAIR(_ZN3dd2C1Ev),
+ NSPAIR(_ZN3dd2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd2[];
+extern void _ZN3dd23fooEv();
+static VTBL_ENTRY vtc_dd2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd2[0]),
+ (VTBL_ENTRY)&_ZN3dd23fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd2[];
+extern VTBL_ENTRY _ZTV3dd2[];
+Class_Descriptor cd_dd2 = { "dd2", // class name
+ 0,0,//no base classes
+ &(vtc_dd2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd2),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee2 : aa2 , virtual bb2 {
+ int e;
+ ee2(const ABISELECT(__tsi64,int) *const *); // _ZN3ee2C2Ev
+ virtual void foo(); // _ZN3ee23fooEv
+ ~ee2(); // tgen
+ ee2(); // tgen
+};
+//SIG(-1 ee2) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee2 ::ee2(const ABISELECT(__tsi64,int) *const *){}
+void ee2 ::foo(){vfunc_called(this, "_ZN3ee23fooEv");}
+ee2 ::~ee2(){ note_dtor("ee2", this);} // tgen
+ee2 ::ee2(){ note_ctor("ee2", this);} // tgen
+
+static void Test_ee2()
+{
+ extern Class_Descriptor cd_ee2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee2, buf);
+ ee2 *dp, &lv = *(dp=new (buf) ee2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee2)");
+ check_base_class_offset(lv, (aa2*), 0, "ee2");
+ check_base_class_offset(lv, (bb2*), ABISELECT(16,12), "ee2");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee2.e");
+ test_class_info(&lv, &cd_ee2);
+ dp->~ee2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee2(Test_ee2, "ee2", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee2C1Ev();
+extern void _ZN3ee2D1Ev();
+Name_Map name_map_ee2[] = {
+ NSPAIR(_ZN3ee2C1Ev),
+ NSPAIR(_ZN3ee2D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb2;
+extern VTBL_ENTRY _ZTI3bb2[];
+extern VTBL_ENTRY _ZTV3bb2[];
+static Base_Class bases_ee2[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee2[];
+extern void _ZN3ee23fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee23fooEv,_ZTv0_n12_N3ee23fooEv)();
+extern void ABISELECT(_ZThn16_N3ee23fooEv,_ZThn12_N3ee23fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee2[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee2[0]),
+ (VTBL_ENTRY)&_ZN3ee23fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ee2[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee23fooEv,_ZTv0_n12_N3ee23fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee2[];
+static VTT_ENTRY vtt_ee2[] = {
+ {&(_ZTV3ee2[3]), 3,8},
+ {&(_ZTV3ee2[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ee2[];
+extern VTBL_ENTRY _ZTV3ee2[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee2[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee23fooEv,_ZTv0_n12_N3ee23fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee23fooEv,_ZThn12_N3ee23fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee2 = { "ee2", // class name
+ bases_ee2, 2,
+ &(vtc_ee2[0]), // expected_vtbl_contents
+ &(vtt_ee2[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee2),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee2),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee2),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff2 : cc2 , dd2 {
+ int f;
+ ff2(); // _ZN3ff2C1Ev
+ virtual void foo(); // _ZN3ff23fooEv
+ ~ff2(); // tgen
+};
+//SIG(-1 ff2) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff2 ::ff2(){ note_ctor("ff2", this);}
+void ff2 ::foo(){vfunc_called(this, "_ZN3ff23fooEv");}
+ff2 ::~ff2(){ note_dtor("ff2", this);} // tgen
+
+static void Test_ff2()
+{
+ extern Class_Descriptor cd_ff2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff2, buf);
+ ff2 *dp, &lv = *(dp=new (buf) ff2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff2)");
+ check_base_class_offset(lv, (cc2*), 0, "ff2");
+ check_base_class_offset(lv, (dd2*), ABISELECT(16,8), "ff2");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff2.f");
+ test_class_info(&lv, &cd_ff2);
+ dp->~ff2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff2(Test_ff2, "ff2", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff2C1Ev();
+extern void _ZN3ff2D1Ev();
+Name_Map name_map_ff2[] = {
+ NSPAIR(_ZN3ff2C1Ev),
+ NSPAIR(_ZN3ff2D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc2;
+extern VTBL_ENTRY _ZTI3cc2[];
+extern VTBL_ENTRY _ZTV3cc2[];
+extern Class_Descriptor cd_dd2;
+extern VTBL_ENTRY _ZTI3dd2[];
+extern VTBL_ENTRY _ZTV3dd2[];
+static Base_Class bases_ff2[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd2, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff2[];
+extern void _ZN3ff23fooEv();
+extern void ABISELECT(_ZThn16_N3ff23fooEv,_ZThn8_N3ff23fooEv)();
+static VTBL_ENTRY vtc_ff2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff2[0]),
+ (VTBL_ENTRY)&_ZN3ff23fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ff2[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ff23fooEv,_ZThn8_N3ff23fooEv),
+};
+extern VTBL_ENTRY _ZTI3ff2[];
+extern VTBL_ENTRY _ZTV3ff2[];
+Class_Descriptor cd_ff2 = { "ff2", // class name
+ bases_ff2, 2,
+ &(vtc_ff2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff2),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff2),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg2 : ee2 , ff2 {
+ int g;
+ gg2(const ABISELECT(__tsi64,int) *const *); // _ZN3gg2C2Ev
+ virtual void foo(); // _ZN3gg23fooEv
+ ~gg2(); // tgen
+ gg2(); // tgen
+};
+//SIG(1 gg2) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg2 ::gg2(const ABISELECT(__tsi64,int) *const *){}
+void gg2 ::foo(){vfunc_called(this, "_ZN3gg23fooEv");}
+gg2 ::~gg2(){ note_dtor("gg2", this);} // tgen
+gg2 ::gg2(){ note_ctor("gg2", this);} // tgen
+
+static void Test_gg2()
+{
+ extern Class_Descriptor cd_gg2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg2, buf);
+ gg2 *dp, &lv = *(dp=new (buf) gg2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg2)");
+ check_base_class_offset(lv, (aa2*)(ee2*), 0, "gg2");
+ check_base_class_offset(lv, (bb2*)(ee2*), ABISELECT(56,36), "gg2");
+ check_base_class_offset(lv, (ee2*), 0, "gg2");
+ check_base_class_offset(lv, (cc2*)(ff2*), ABISELECT(16,12), "gg2");
+ check_base_class_offset(lv, (dd2*)(ff2*), ABISELECT(32,20), "gg2");
+ check_base_class_offset(lv, (ff2*), ABISELECT(16,12), "gg2");
+ check_field_offset(lv, g, ABISELECT(48,32), "gg2.g");
+ test_class_info(&lv, &cd_gg2);
+ dp->~gg2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg2(Test_gg2, "gg2", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg2C1Ev();
+extern void _ZN3gg2D1Ev();
+Name_Map name_map_gg2[] = {
+ NSPAIR(_ZN3gg2C1Ev),
+ NSPAIR(_ZN3gg2D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb2;
+extern VTBL_ENTRY _ZTI3bb2[];
+extern VTBL_ENTRY _ZTV3bb2[];
+extern Class_Descriptor cd_ee2;
+extern VTBL_ENTRY _ZTI3ee2[];
+extern VTBL_ENTRY _ZTV3ee2[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee2[];
+extern Class_Descriptor cd_cc2;
+extern VTBL_ENTRY _ZTI3cc2[];
+extern VTBL_ENTRY _ZTV3cc2[];
+extern Class_Descriptor cd_dd2;
+extern VTBL_ENTRY _ZTI3dd2[];
+extern VTBL_ENTRY _ZTV3dd2[];
+extern Class_Descriptor cd_ff2;
+extern VTBL_ENTRY _ZTI3ff2[];
+extern VTBL_ENTRY _ZTV3ff2[];
+static Base_Class bases_gg2[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb2, ABISELECT(56,36), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd2, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg2[];
+extern void _ZN3gg23fooEv();
+extern void ABISELECT(_ZThn16_N3gg23fooEv,_ZThn12_N3gg23fooEv)();
+extern void ABISELECT(_ZThn32_N3gg23fooEv,_ZThn20_N3gg23fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg23fooEv,_ZTv0_n12_N3gg23fooEv)();
+extern void ABISELECT(_ZThn56_N3gg23fooEv,_ZThn36_N3gg23fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg2[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg2[0]),
+ (VTBL_ENTRY)&_ZN3gg23fooEv,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3gg2[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg23fooEv,_ZThn12_N3gg23fooEv),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI3gg2[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N3gg23fooEv,_ZThn20_N3gg23fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg2[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg23fooEv,_ZTv0_n12_N3gg23fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg2[];
+extern void _ZN3ee23fooEv();
+static VTBL_ENTRY _tg__ZTV3ee2__3gg2[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee2[0]),
+ (VTBL_ENTRY)&_ZN3ee23fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee23fooEv,_ZTv0_n12_N3ee23fooEv)();
+extern void ABISELECT(_ZThn56_N3ee23fooEv,_ZThn36_N3ee23fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3bb2__3ee2__3gg2[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3ee2[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee23fooEv,_ZTv0_n12_N3ee23fooEv),
+};
+static VTT_ENTRY vtt_gg2[] = {
+ {&(_ZTV3gg2[3]), 3,14},
+ {&(_tg__ZTV3ee2__3gg2[3]), 3,4},
+ {&(_tg__ZTV3bb2__3ee2__3gg2[3]), 3,4},
+ {&(_ZTV3gg2[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI3gg2[];
+extern VTBL_ENTRY _ZTV3gg2[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg2[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee23fooEv,_ZTv0_n12_N3ee23fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3ee23fooEv,_ZThn36_N3ee23fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg23fooEv,_ZTv0_n12_N3gg23fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg23fooEv,_ZThn36_N3gg23fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg2 = { "gg2", // class name
+ bases_gg2, 6,
+ &(vtc_gg2[0]), // expected_vtbl_contents
+ &(vtt_gg2[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg2),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg2),14, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg2),4, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa3 {
+ int a;
+ aa3(); // _ZN3aa3C1Ev
+ virtual void foo(); // _ZN3aa33fooEv
+ ~aa3(); // tgen
+};
+//SIG(-1 aa3) C1{ v1 Fi}
+
+
+ aa3 ::aa3(){ note_ctor("aa3", this);}
+void aa3 ::foo(){vfunc_called(this, "_ZN3aa33fooEv");}
+aa3 ::~aa3(){ note_dtor("aa3", this);} // tgen
+
+static void Test_aa3()
+{
+ extern Class_Descriptor cd_aa3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa3, buf);
+ aa3 *dp, &lv = *(dp=new (buf) aa3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa3)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa3.a");
+ test_class_info(&lv, &cd_aa3);
+ dp->~aa3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa3(Test_aa3, "aa3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa3C1Ev();
+extern void _ZN3aa3D1Ev();
+Name_Map name_map_aa3[] = {
+ NSPAIR(_ZN3aa3C1Ev),
+ NSPAIR(_ZN3aa3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa3[];
+extern void _ZN3aa33fooEv();
+static VTBL_ENTRY vtc_aa3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa3[0]),
+ (VTBL_ENTRY)&_ZN3aa33fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa3[];
+extern VTBL_ENTRY _ZTV3aa3[];
+Class_Descriptor cd_aa3 = { "aa3", // class name
+ 0,0,//no base classes
+ &(vtc_aa3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa3),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb3 {
+ int b;
+ bb3(); // _ZN3bb3C1Ev
+ virtual void foo(); // _ZN3bb33fooEv
+ ~bb3(); // tgen
+};
+//SIG(-1 bb3) C1{ v1 Fi}
+
+
+ bb3 ::bb3(){ note_ctor("bb3", this);}
+void bb3 ::foo(){vfunc_called(this, "_ZN3bb33fooEv");}
+bb3 ::~bb3(){ note_dtor("bb3", this);} // tgen
+
+static void Test_bb3()
+{
+ extern Class_Descriptor cd_bb3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb3, buf);
+ bb3 *dp, &lv = *(dp=new (buf) bb3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb3)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb3.b");
+ test_class_info(&lv, &cd_bb3);
+ dp->~bb3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb3(Test_bb3, "bb3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb3C1Ev();
+extern void _ZN3bb3D1Ev();
+Name_Map name_map_bb3[] = {
+ NSPAIR(_ZN3bb3C1Ev),
+ NSPAIR(_ZN3bb3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb3[];
+extern void _ZN3bb33fooEv();
+static VTBL_ENTRY vtc_bb3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb3[0]),
+ (VTBL_ENTRY)&_ZN3bb33fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb3[];
+extern VTBL_ENTRY _ZTV3bb3[];
+Class_Descriptor cd_bb3 = { "bb3", // class name
+ 0,0,//no base classes
+ &(vtc_bb3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb3),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc3 {
+ int c;
+ cc3(); // _ZN3cc3C1Ev
+ virtual void foo(); // _ZN3cc33fooEv
+ ~cc3(); // tgen
+};
+//SIG(-1 cc3) C1{ v1 Fi}
+
+
+ cc3 ::cc3(){ note_ctor("cc3", this);}
+void cc3 ::foo(){vfunc_called(this, "_ZN3cc33fooEv");}
+cc3 ::~cc3(){ note_dtor("cc3", this);} // tgen
+
+static void Test_cc3()
+{
+ extern Class_Descriptor cd_cc3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc3, buf);
+ cc3 *dp, &lv = *(dp=new (buf) cc3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc3)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc3.c");
+ test_class_info(&lv, &cd_cc3);
+ dp->~cc3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc3(Test_cc3, "cc3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc3C1Ev();
+extern void _ZN3cc3D1Ev();
+Name_Map name_map_cc3[] = {
+ NSPAIR(_ZN3cc3C1Ev),
+ NSPAIR(_ZN3cc3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc3[];
+extern void _ZN3cc33fooEv();
+static VTBL_ENTRY vtc_cc3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc3[0]),
+ (VTBL_ENTRY)&_ZN3cc33fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc3[];
+extern VTBL_ENTRY _ZTV3cc3[];
+Class_Descriptor cd_cc3 = { "cc3", // class name
+ 0,0,//no base classes
+ &(vtc_cc3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc3),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3 {
+ int d;
+ dd3(); // _ZN3dd3C1Ev
+ virtual void foo(); // _ZN3dd33fooEv
+ ~dd3(); // tgen
+};
+//SIG(-1 dd3) C1{ v1 Fi}
+
+
+ dd3 ::dd3(){ note_ctor("dd3", this);}
+void dd3 ::foo(){vfunc_called(this, "_ZN3dd33fooEv");}
+dd3 ::~dd3(){ note_dtor("dd3", this);} // tgen
+
+static void Test_dd3()
+{
+ extern Class_Descriptor cd_dd3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd3, buf);
+ dd3 *dp, &lv = *(dp=new (buf) dd3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3.d");
+ test_class_info(&lv, &cd_dd3);
+ dp->~dd3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3(Test_dd3, "dd3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd3C1Ev();
+extern void _ZN3dd3D1Ev();
+Name_Map name_map_dd3[] = {
+ NSPAIR(_ZN3dd3C1Ev),
+ NSPAIR(_ZN3dd3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd3[];
+extern void _ZN3dd33fooEv();
+static VTBL_ENTRY vtc_dd3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd3[0]),
+ (VTBL_ENTRY)&_ZN3dd33fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd3[];
+extern VTBL_ENTRY _ZTV3dd3[];
+Class_Descriptor cd_dd3 = { "dd3", // class name
+ 0,0,//no base classes
+ &(vtc_dd3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd3),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee3 : virtual aa3 , virtual bb3 {
+ int e;
+ ee3(const ABISELECT(__tsi64,int) *const *); // _ZN3ee3C2Ev
+ virtual void foo(); // _ZN3ee33fooEv
+ ~ee3(); // tgen
+ ee3(); // tgen
+};
+//SIG(-1 ee3) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee3 ::ee3(const ABISELECT(__tsi64,int) *const *){}
+void ee3 ::foo(){vfunc_called(this, "_ZN3ee33fooEv");}
+ee3 ::~ee3(){ note_dtor("ee3", this);} // tgen
+ee3 ::ee3(){ note_ctor("ee3", this);} // tgen
+
+static void Test_ee3()
+{
+ extern Class_Descriptor cd_ee3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee3, buf);
+ ee3 *dp, &lv = *(dp=new (buf) ee3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee3)");
+ check_base_class_offset(lv, (aa3*), ABISELECT(16,8), "ee3");
+ check_base_class_offset(lv, (bb3*), ABISELECT(32,16), "ee3");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee3.e");
+ test_class_info(&lv, &cd_ee3);
+ dp->~ee3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee3(Test_ee3, "ee3", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN3ee3C1Ev();
+extern void _ZN3ee3D1Ev();
+Name_Map name_map_ee3[] = {
+ NSPAIR(_ZN3ee3C1Ev),
+ NSPAIR(_ZN3ee3D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa3;
+extern VTBL_ENTRY _ZTI3aa3[];
+extern VTBL_ENTRY _ZTV3aa3[];
+extern Class_Descriptor cd_bb3;
+extern VTBL_ENTRY _ZTI3bb3[];
+extern VTBL_ENTRY _ZTV3bb3[];
+static Base_Class bases_ee3[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa3, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb3, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee3[];
+extern void _ZN3ee33fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv)();
+extern void ABISELECT(_ZThn16_N3ee33fooEv,_ZThn8_N3ee33fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv)();
+extern void ABISELECT(_ZThn32_N3ee33fooEv,_ZThn16_N3ee33fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee3[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee3[0]),
+ (VTBL_ENTRY)&_ZN3ee33fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ee3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI3ee3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee3[];
+static VTT_ENTRY vtt_ee3[] = {
+ {&(_ZTV3ee3[4]), 4,13},
+ {&(_ZTV3ee3[8]), 8,13},
+ {&(_ZTV3ee3[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI3ee3[];
+extern VTBL_ENTRY _ZTV3ee3[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee3[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N3ee33fooEv,_ZThn16_N3ee33fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee33fooEv,_ZThn8_N3ee33fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee3 = { "ee3", // class name
+ bases_ee3, 2,
+ &(vtc_ee3[0]), // expected_vtbl_contents
+ &(vtt_ee3[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI3ee3),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee3),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee3),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff3 : cc3 , dd3 {
+ int f;
+ ff3(); // _ZN3ff3C1Ev
+ virtual void foo(); // _ZN3ff33fooEv
+ ~ff3(); // tgen
+};
+//SIG(-1 ff3) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff3 ::ff3(){ note_ctor("ff3", this);}
+void ff3 ::foo(){vfunc_called(this, "_ZN3ff33fooEv");}
+ff3 ::~ff3(){ note_dtor("ff3", this);} // tgen
+
+static void Test_ff3()
+{
+ extern Class_Descriptor cd_ff3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff3, buf);
+ ff3 *dp, &lv = *(dp=new (buf) ff3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff3)");
+ check_base_class_offset(lv, (cc3*), 0, "ff3");
+ check_base_class_offset(lv, (dd3*), ABISELECT(16,8), "ff3");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff3.f");
+ test_class_info(&lv, &cd_ff3);
+ dp->~ff3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff3(Test_ff3, "ff3", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff3C1Ev();
+extern void _ZN3ff3D1Ev();
+Name_Map name_map_ff3[] = {
+ NSPAIR(_ZN3ff3C1Ev),
+ NSPAIR(_ZN3ff3D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc3;
+extern VTBL_ENTRY _ZTI3cc3[];
+extern VTBL_ENTRY _ZTV3cc3[];
+extern Class_Descriptor cd_dd3;
+extern VTBL_ENTRY _ZTI3dd3[];
+extern VTBL_ENTRY _ZTV3dd3[];
+static Base_Class bases_ff3[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc3, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd3, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff3[];
+extern void _ZN3ff33fooEv();
+extern void ABISELECT(_ZThn16_N3ff33fooEv,_ZThn8_N3ff33fooEv)();
+static VTBL_ENTRY vtc_ff3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff3[0]),
+ (VTBL_ENTRY)&_ZN3ff33fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ff3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ff33fooEv,_ZThn8_N3ff33fooEv),
+};
+extern VTBL_ENTRY _ZTI3ff3[];
+extern VTBL_ENTRY _ZTV3ff3[];
+Class_Descriptor cd_ff3 = { "ff3", // class name
+ bases_ff3, 2,
+ &(vtc_ff3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff3),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff3),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg3 : ee3 , ff3 {
+ int g;
+ gg3(const ABISELECT(__tsi64,int) *const *); // _ZN3gg3C2Ev
+ virtual void foo(); // _ZN3gg33fooEv
+ ~gg3(); // tgen
+ gg3(); // tgen
+};
+//SIG(1 gg3) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg3 ::gg3(const ABISELECT(__tsi64,int) *const *){}
+void gg3 ::foo(){vfunc_called(this, "_ZN3gg33fooEv");}
+gg3 ::~gg3(){ note_dtor("gg3", this);} // tgen
+gg3 ::gg3(){ note_ctor("gg3", this);} // tgen
+
+static void Test_gg3()
+{
+ extern Class_Descriptor cd_gg3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg3, buf);
+ gg3 *dp, &lv = *(dp=new (buf) gg3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg3)");
+ check_base_class_offset(lv, (aa3*)(ee3*), ABISELECT(56,32), "gg3");
+ check_base_class_offset(lv, (bb3*)(ee3*), ABISELECT(72,40), "gg3");
+ check_base_class_offset(lv, (ee3*), 0, "gg3");
+ check_base_class_offset(lv, (cc3*)(ff3*), ABISELECT(16,8), "gg3");
+ check_base_class_offset(lv, (dd3*)(ff3*), ABISELECT(32,16), "gg3");
+ check_base_class_offset(lv, (ff3*), ABISELECT(16,8), "gg3");
+ check_field_offset(lv, g, ABISELECT(48,28), "gg3.g");
+ test_class_info(&lv, &cd_gg3);
+ dp->~gg3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg3(Test_gg3, "gg3", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN3gg3C1Ev();
+extern void _ZN3gg3D1Ev();
+Name_Map name_map_gg3[] = {
+ NSPAIR(_ZN3gg3C1Ev),
+ NSPAIR(_ZN3gg3D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa3;
+extern VTBL_ENTRY _ZTI3aa3[];
+extern VTBL_ENTRY _ZTV3aa3[];
+extern Class_Descriptor cd_bb3;
+extern VTBL_ENTRY _ZTI3bb3[];
+extern VTBL_ENTRY _ZTV3bb3[];
+extern Class_Descriptor cd_ee3;
+extern VTBL_ENTRY _ZTI3ee3[];
+extern VTBL_ENTRY _ZTV3ee3[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee3[];
+extern Class_Descriptor cd_cc3;
+extern VTBL_ENTRY _ZTI3cc3[];
+extern VTBL_ENTRY _ZTV3cc3[];
+extern Class_Descriptor cd_dd3;
+extern VTBL_ENTRY _ZTI3dd3[];
+extern VTBL_ENTRY _ZTV3dd3[];
+extern Class_Descriptor cd_ff3;
+extern VTBL_ENTRY _ZTI3ff3[];
+extern VTBL_ENTRY _ZTV3ff3[];
+static Base_Class bases_gg3[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa3, ABISELECT(56,32), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb3, ABISELECT(72,40), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee3, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc3, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd3, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff3, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg3[];
+extern void _ZN3gg33fooEv();
+extern void ABISELECT(_ZThn16_N3gg33fooEv,_ZThn8_N3gg33fooEv)();
+extern void ABISELECT(_ZThn32_N3gg33fooEv,_ZThn16_N3gg33fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg33fooEv,_ZTv0_n12_N3gg33fooEv)();
+extern void ABISELECT(_ZThn56_N3gg33fooEv,_ZThn32_N3gg33fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3gg33fooEv,_ZTv0_n12_N3gg33fooEv)();
+extern void ABISELECT(_ZThn72_N3gg33fooEv,_ZThn40_N3gg33fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg3[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg3[0]),
+ (VTBL_ENTRY)&_ZN3gg33fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3gg3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg33fooEv,_ZThn8_N3gg33fooEv),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI3gg3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N3gg33fooEv,_ZThn16_N3gg33fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI3gg3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg33fooEv,_ZTv0_n12_N3gg33fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI3gg3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg33fooEv,_ZTv0_n12_N3gg33fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg3[];
+extern void _ZN3ee33fooEv();
+static VTBL_ENTRY _tg__ZTV3ee3__3gg3[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee3[0]),
+ (VTBL_ENTRY)&_ZN3ee33fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv)();
+extern void ABISELECT(_ZThn56_N3ee33fooEv,_ZThn32_N3ee33fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa3__3ee3__3gg3[] = {
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI3ee3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv)();
+extern void ABISELECT(_ZThn72_N3ee33fooEv,_ZThn40_N3ee33fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3bb3__3ee3__3gg3[] = {
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI3ee3[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv),
+};
+static VTT_ENTRY vtt_gg3[] = {
+ {&(_ZTV3gg3[4]), 4,19},
+ {&(_tg__ZTV3ee3__3gg3[4]), 4,5},
+ {&(_tg__ZTV3aa3__3ee3__3gg3[3]), 3,4},
+ {&(_tg__ZTV3bb3__3ee3__3gg3[3]), 3,4},
+ {&(_ZTV3gg3[14]), 14,19},
+ {&(_ZTV3gg3[18]), 18,19},
+};
+extern VTBL_ENTRY _ZTI3gg3[];
+extern VTBL_ENTRY _ZTV3gg3[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg3[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee33fooEv,_ZTv0_n12_N3ee33fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N3ee33fooEv,_ZThn40_N3ee33fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3ee33fooEv,_ZThn32_N3ee33fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg33fooEv,_ZTv0_n12_N3gg33fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N3gg33fooEv,_ZThn40_N3gg33fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg33fooEv,_ZThn32_N3gg33fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg3 = { "gg3", // class name
+ bases_gg3, 6,
+ &(vtc_gg3[0]), // expected_vtbl_contents
+ &(vtt_gg3[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI3gg3),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg3),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg3),6, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa4 {
+ int a;
+ aa4(); // _ZN3aa4C1Ev
+ virtual void foo(); // _ZN3aa43fooEv
+ ~aa4(); // tgen
+};
+//SIG(-1 aa4) C1{ v1 Fi}
+
+
+ aa4 ::aa4(){ note_ctor("aa4", this);}
+void aa4 ::foo(){vfunc_called(this, "_ZN3aa43fooEv");}
+aa4 ::~aa4(){ note_dtor("aa4", this);} // tgen
+
+static void Test_aa4()
+{
+ extern Class_Descriptor cd_aa4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa4, buf);
+ aa4 *dp, &lv = *(dp=new (buf) aa4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa4)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa4.a");
+ test_class_info(&lv, &cd_aa4);
+ dp->~aa4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa4(Test_aa4, "aa4", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa4C1Ev();
+extern void _ZN3aa4D1Ev();
+Name_Map name_map_aa4[] = {
+ NSPAIR(_ZN3aa4C1Ev),
+ NSPAIR(_ZN3aa4D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa4[];
+extern void _ZN3aa43fooEv();
+static VTBL_ENTRY vtc_aa4[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa4[0]),
+ (VTBL_ENTRY)&_ZN3aa43fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa4[];
+extern VTBL_ENTRY _ZTV3aa4[];
+Class_Descriptor cd_aa4 = { "aa4", // class name
+ 0,0,//no base classes
+ &(vtc_aa4[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa4),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa4),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb4 {
+ int b;
+ bb4(); // _ZN3bb4C1Ev
+ virtual void foo(); // _ZN3bb43fooEv
+ ~bb4(); // tgen
+};
+//SIG(-1 bb4) C1{ v1 Fi}
+
+
+ bb4 ::bb4(){ note_ctor("bb4", this);}
+void bb4 ::foo(){vfunc_called(this, "_ZN3bb43fooEv");}
+bb4 ::~bb4(){ note_dtor("bb4", this);} // tgen
+
+static void Test_bb4()
+{
+ extern Class_Descriptor cd_bb4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb4, buf);
+ bb4 *dp, &lv = *(dp=new (buf) bb4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb4)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb4.b");
+ test_class_info(&lv, &cd_bb4);
+ dp->~bb4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb4(Test_bb4, "bb4", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb4C1Ev();
+extern void _ZN3bb4D1Ev();
+Name_Map name_map_bb4[] = {
+ NSPAIR(_ZN3bb4C1Ev),
+ NSPAIR(_ZN3bb4D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb4[];
+extern void _ZN3bb43fooEv();
+static VTBL_ENTRY vtc_bb4[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb4[0]),
+ (VTBL_ENTRY)&_ZN3bb43fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb4[];
+extern VTBL_ENTRY _ZTV3bb4[];
+Class_Descriptor cd_bb4 = { "bb4", // class name
+ 0,0,//no base classes
+ &(vtc_bb4[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb4),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb4),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc4 {
+ int c;
+ cc4(); // _ZN3cc4C1Ev
+ virtual void foo(); // _ZN3cc43fooEv
+ ~cc4(); // tgen
+};
+//SIG(-1 cc4) C1{ v1 Fi}
+
+
+ cc4 ::cc4(){ note_ctor("cc4", this);}
+void cc4 ::foo(){vfunc_called(this, "_ZN3cc43fooEv");}
+cc4 ::~cc4(){ note_dtor("cc4", this);} // tgen
+
+static void Test_cc4()
+{
+ extern Class_Descriptor cd_cc4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc4, buf);
+ cc4 *dp, &lv = *(dp=new (buf) cc4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc4)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc4.c");
+ test_class_info(&lv, &cd_cc4);
+ dp->~cc4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc4(Test_cc4, "cc4", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc4C1Ev();
+extern void _ZN3cc4D1Ev();
+Name_Map name_map_cc4[] = {
+ NSPAIR(_ZN3cc4C1Ev),
+ NSPAIR(_ZN3cc4D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc4[];
+extern void _ZN3cc43fooEv();
+static VTBL_ENTRY vtc_cc4[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc4[0]),
+ (VTBL_ENTRY)&_ZN3cc43fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc4[];
+extern VTBL_ENTRY _ZTV3cc4[];
+Class_Descriptor cd_cc4 = { "cc4", // class name
+ 0,0,//no base classes
+ &(vtc_cc4[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc4),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc4),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4 {
+ int d;
+ dd4(); // _ZN3dd4C1Ev
+ virtual void foo(); // _ZN3dd43fooEv
+ ~dd4(); // tgen
+};
+//SIG(-1 dd4) C1{ v1 Fi}
+
+
+ dd4 ::dd4(){ note_ctor("dd4", this);}
+void dd4 ::foo(){vfunc_called(this, "_ZN3dd43fooEv");}
+dd4 ::~dd4(){ note_dtor("dd4", this);} // tgen
+
+static void Test_dd4()
+{
+ extern Class_Descriptor cd_dd4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd4, buf);
+ dd4 *dp, &lv = *(dp=new (buf) dd4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd4.d");
+ test_class_info(&lv, &cd_dd4);
+ dp->~dd4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4(Test_dd4, "dd4", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd4C1Ev();
+extern void _ZN3dd4D1Ev();
+Name_Map name_map_dd4[] = {
+ NSPAIR(_ZN3dd4C1Ev),
+ NSPAIR(_ZN3dd4D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd4[];
+extern void _ZN3dd43fooEv();
+static VTBL_ENTRY vtc_dd4[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd4[0]),
+ (VTBL_ENTRY)&_ZN3dd43fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd4[];
+extern VTBL_ENTRY _ZTV3dd4[];
+Class_Descriptor cd_dd4 = { "dd4", // class name
+ 0,0,//no base classes
+ &(vtc_dd4[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd4),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd4),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee4 : aa4 , bb4 {
+ int e;
+ ee4(); // _ZN3ee4C1Ev
+ virtual void foo(); // _ZN3ee43fooEv
+ ~ee4(); // tgen
+};
+//SIG(-1 ee4) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee4 ::ee4(){ note_ctor("ee4", this);}
+void ee4 ::foo(){vfunc_called(this, "_ZN3ee43fooEv");}
+ee4 ::~ee4(){ note_dtor("ee4", this);} // tgen
+
+static void Test_ee4()
+{
+ extern Class_Descriptor cd_ee4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee4, buf);
+ ee4 *dp, &lv = *(dp=new (buf) ee4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee4)");
+ check_base_class_offset(lv, (aa4*), 0, "ee4");
+ check_base_class_offset(lv, (bb4*), ABISELECT(16,8), "ee4");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee4.e");
+ test_class_info(&lv, &cd_ee4);
+ dp->~ee4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee4(Test_ee4, "ee4", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee4C1Ev();
+extern void _ZN3ee4D1Ev();
+Name_Map name_map_ee4[] = {
+ NSPAIR(_ZN3ee4C1Ev),
+ NSPAIR(_ZN3ee4D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa4;
+extern VTBL_ENTRY _ZTI3aa4[];
+extern VTBL_ENTRY _ZTV3aa4[];
+extern Class_Descriptor cd_bb4;
+extern VTBL_ENTRY _ZTI3bb4[];
+extern VTBL_ENTRY _ZTV3bb4[];
+static Base_Class bases_ee4[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa4, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb4, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee4[];
+extern void _ZN3ee43fooEv();
+extern void ABISELECT(_ZThn16_N3ee43fooEv,_ZThn8_N3ee43fooEv)();
+static VTBL_ENTRY vtc_ee4[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee4[0]),
+ (VTBL_ENTRY)&_ZN3ee43fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ee4[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ee43fooEv,_ZThn8_N3ee43fooEv),
+};
+extern VTBL_ENTRY _ZTI3ee4[];
+extern VTBL_ENTRY _ZTV3ee4[];
+Class_Descriptor cd_ee4 = { "ee4", // class name
+ bases_ee4, 2,
+ &(vtc_ee4[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee4),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee4),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff4 : virtual cc4 , dd4 {
+ int f;
+ ff4(const ABISELECT(__tsi64,int) *const *); // _ZN3ff4C2Ev
+ virtual void foo(); // _ZN3ff43fooEv
+ ~ff4(); // tgen
+ ff4(); // tgen
+};
+//SIG(-1 ff4) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff4 ::ff4(const ABISELECT(__tsi64,int) *const *){}
+void ff4 ::foo(){vfunc_called(this, "_ZN3ff43fooEv");}
+ff4 ::~ff4(){ note_dtor("ff4", this);} // tgen
+ff4 ::ff4(){ note_ctor("ff4", this);} // tgen
+
+static void Test_ff4()
+{
+ extern Class_Descriptor cd_ff4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff4, buf);
+ ff4 *dp, &lv = *(dp=new (buf) ff4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff4)");
+ check_base_class_offset(lv, (cc4*), ABISELECT(16,12), "ff4");
+ check_base_class_offset(lv, (dd4*), 0, "ff4");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff4.f");
+ test_class_info(&lv, &cd_ff4);
+ dp->~ff4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff4(Test_ff4, "ff4", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff4C1Ev();
+extern void _ZN3ff4D1Ev();
+Name_Map name_map_ff4[] = {
+ NSPAIR(_ZN3ff4C1Ev),
+ NSPAIR(_ZN3ff4D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc4;
+extern VTBL_ENTRY _ZTI3cc4[];
+extern VTBL_ENTRY _ZTV3cc4[];
+extern Class_Descriptor cd_dd4;
+extern VTBL_ENTRY _ZTI3dd4[];
+extern VTBL_ENTRY _ZTV3dd4[];
+static Base_Class bases_ff4[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc4, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd4, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff4[];
+extern void _ZN3ff43fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ff43fooEv,_ZTv0_n12_N3ff43fooEv)();
+extern void ABISELECT(_ZThn16_N3ff43fooEv,_ZThn12_N3ff43fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff4[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff4[0]),
+ (VTBL_ENTRY)&_ZN3ff43fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ff4[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff43fooEv,_ZTv0_n12_N3ff43fooEv),
+};
+extern VTBL_ENTRY _ZTV3ff4[];
+static VTT_ENTRY vtt_ff4[] = {
+ {&(_ZTV3ff4[3]), 3,8},
+ {&(_ZTV3ff4[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ff4[];
+extern VTBL_ENTRY _ZTV3ff4[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff4[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff43fooEv,_ZTv0_n12_N3ff43fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ff43fooEv,_ZThn12_N3ff43fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff4 = { "ff4", // class name
+ bases_ff4, 2,
+ &(vtc_ff4[0]), // expected_vtbl_contents
+ &(vtt_ff4[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff4),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff4),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ff4),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg4 : ee4 , ff4 {
+ int g;
+ gg4(const ABISELECT(__tsi64,int) *const *); // _ZN3gg4C2Ev
+ virtual void foo(); // _ZN3gg43fooEv
+ ~gg4(); // tgen
+ gg4(); // tgen
+};
+//SIG(1 gg4) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg4 ::gg4(const ABISELECT(__tsi64,int) *const *){}
+void gg4 ::foo(){vfunc_called(this, "_ZN3gg43fooEv");}
+gg4 ::~gg4(){ note_dtor("gg4", this);} // tgen
+gg4 ::gg4(){ note_ctor("gg4", this);} // tgen
+
+static void Test_gg4()
+{
+ extern Class_Descriptor cd_gg4;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg4, buf);
+ gg4 *dp, &lv = *(dp=new (buf) gg4());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg4)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg4)");
+ check_base_class_offset(lv, (aa4*)(ee4*), 0, "gg4");
+ check_base_class_offset(lv, (bb4*)(ee4*), ABISELECT(16,8), "gg4");
+ check_base_class_offset(lv, (ee4*), 0, "gg4");
+ check_base_class_offset(lv, (cc4*)(ff4*), ABISELECT(56,36), "gg4");
+ check_base_class_offset(lv, (dd4*)(ff4*), ABISELECT(32,20), "gg4");
+ check_base_class_offset(lv, (ff4*), ABISELECT(32,20), "gg4");
+ check_field_offset(lv, g, ABISELECT(48,32), "gg4.g");
+ test_class_info(&lv, &cd_gg4);
+ dp->~gg4();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg4(Test_gg4, "gg4", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg4C1Ev();
+extern void _ZN3gg4D1Ev();
+Name_Map name_map_gg4[] = {
+ NSPAIR(_ZN3gg4C1Ev),
+ NSPAIR(_ZN3gg4D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa4;
+extern VTBL_ENTRY _ZTI3aa4[];
+extern VTBL_ENTRY _ZTV3aa4[];
+extern Class_Descriptor cd_bb4;
+extern VTBL_ENTRY _ZTI3bb4[];
+extern VTBL_ENTRY _ZTV3bb4[];
+extern Class_Descriptor cd_ee4;
+extern VTBL_ENTRY _ZTI3ee4[];
+extern VTBL_ENTRY _ZTV3ee4[];
+extern Class_Descriptor cd_cc4;
+extern VTBL_ENTRY _ZTI3cc4[];
+extern VTBL_ENTRY _ZTV3cc4[];
+extern Class_Descriptor cd_dd4;
+extern VTBL_ENTRY _ZTI3dd4[];
+extern VTBL_ENTRY _ZTV3dd4[];
+extern Class_Descriptor cd_ff4;
+extern VTBL_ENTRY _ZTI3ff4[];
+extern VTBL_ENTRY _ZTV3ff4[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff4[];
+static Base_Class bases_gg4[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa4, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb4, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee4, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc4, ABISELECT(56,36), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd4, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff4, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg4[];
+extern void _ZN3gg43fooEv();
+extern void ABISELECT(_ZThn16_N3gg43fooEv,_ZThn8_N3gg43fooEv)();
+extern void ABISELECT(_ZThn32_N3gg43fooEv,_ZThn20_N3gg43fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg43fooEv,_ZTv0_n12_N3gg43fooEv)();
+extern void ABISELECT(_ZThn56_N3gg43fooEv,_ZThn36_N3gg43fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg4[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg4[0]),
+ (VTBL_ENTRY)&_ZN3gg43fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3gg4[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg43fooEv,_ZThn8_N3gg43fooEv),
+ ABISELECT(24,16),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI3gg4[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N3gg43fooEv,_ZThn20_N3gg43fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg4[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg43fooEv,_ZTv0_n12_N3gg43fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg4[];
+extern void _ZN3ff43fooEv();
+static VTBL_ENTRY _tg__ZTV3ff4__3gg4[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff4[0]),
+ (VTBL_ENTRY)&_ZN3ff43fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ff43fooEv,_ZTv0_n12_N3ff43fooEv)();
+extern void ABISELECT(_ZThn24_N3ff43fooEv,_ZThn16_N3ff43fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3cc4__3ff4__3gg4[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI3ff4[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff43fooEv,_ZTv0_n12_N3ff43fooEv),
+};
+static VTT_ENTRY vtt_gg4[] = {
+ {&(_ZTV3gg4[3]), 3,15},
+ {&(_tg__ZTV3ff4__3gg4[3]), 3,4},
+ {&(_tg__ZTV3cc4__3ff4__3gg4[3]), 3,4},
+ {&(_ZTV3gg4[10]), 10,15},
+ {&(_ZTV3gg4[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI3gg4[];
+extern VTBL_ENTRY _ZTV3gg4[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg4[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff43fooEv,_ZTv0_n12_N3ff43fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N3ff43fooEv,_ZThn16_N3ff43fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg43fooEv,_ZTv0_n12_N3gg43fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg43fooEv,_ZThn36_N3gg43fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg4 = { "gg4", // class name
+ bases_gg4, 6,
+ &(vtc_gg4[0]), // expected_vtbl_contents
+ &(vtt_gg4[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg4),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg4),15, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg4),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa5 {
+ int a;
+ aa5(); // _ZN3aa5C1Ev
+ virtual void foo(); // _ZN3aa53fooEv
+ ~aa5(); // tgen
+};
+//SIG(-1 aa5) C1{ v1 Fi}
+
+
+ aa5 ::aa5(){ note_ctor("aa5", this);}
+void aa5 ::foo(){vfunc_called(this, "_ZN3aa53fooEv");}
+aa5 ::~aa5(){ note_dtor("aa5", this);} // tgen
+
+static void Test_aa5()
+{
+ extern Class_Descriptor cd_aa5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa5, buf);
+ aa5 *dp, &lv = *(dp=new (buf) aa5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa5)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa5.a");
+ test_class_info(&lv, &cd_aa5);
+ dp->~aa5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa5(Test_aa5, "aa5", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa5C1Ev();
+extern void _ZN3aa5D1Ev();
+Name_Map name_map_aa5[] = {
+ NSPAIR(_ZN3aa5C1Ev),
+ NSPAIR(_ZN3aa5D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa5[];
+extern void _ZN3aa53fooEv();
+static VTBL_ENTRY vtc_aa5[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa5[0]),
+ (VTBL_ENTRY)&_ZN3aa53fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa5[];
+extern VTBL_ENTRY _ZTV3aa5[];
+Class_Descriptor cd_aa5 = { "aa5", // class name
+ 0,0,//no base classes
+ &(vtc_aa5[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa5),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa5),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb5 {
+ int b;
+ bb5(); // _ZN3bb5C1Ev
+ virtual void foo(); // _ZN3bb53fooEv
+ ~bb5(); // tgen
+};
+//SIG(-1 bb5) C1{ v1 Fi}
+
+
+ bb5 ::bb5(){ note_ctor("bb5", this);}
+void bb5 ::foo(){vfunc_called(this, "_ZN3bb53fooEv");}
+bb5 ::~bb5(){ note_dtor("bb5", this);} // tgen
+
+static void Test_bb5()
+{
+ extern Class_Descriptor cd_bb5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb5, buf);
+ bb5 *dp, &lv = *(dp=new (buf) bb5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb5)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb5.b");
+ test_class_info(&lv, &cd_bb5);
+ dp->~bb5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb5(Test_bb5, "bb5", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb5C1Ev();
+extern void _ZN3bb5D1Ev();
+Name_Map name_map_bb5[] = {
+ NSPAIR(_ZN3bb5C1Ev),
+ NSPAIR(_ZN3bb5D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb5[];
+extern void _ZN3bb53fooEv();
+static VTBL_ENTRY vtc_bb5[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb5[0]),
+ (VTBL_ENTRY)&_ZN3bb53fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb5[];
+extern VTBL_ENTRY _ZTV3bb5[];
+Class_Descriptor cd_bb5 = { "bb5", // class name
+ 0,0,//no base classes
+ &(vtc_bb5[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb5),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb5),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc5 {
+ int c;
+ cc5(); // _ZN3cc5C1Ev
+ virtual void foo(); // _ZN3cc53fooEv
+ ~cc5(); // tgen
+};
+//SIG(-1 cc5) C1{ v1 Fi}
+
+
+ cc5 ::cc5(){ note_ctor("cc5", this);}
+void cc5 ::foo(){vfunc_called(this, "_ZN3cc53fooEv");}
+cc5 ::~cc5(){ note_dtor("cc5", this);} // tgen
+
+static void Test_cc5()
+{
+ extern Class_Descriptor cd_cc5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc5, buf);
+ cc5 *dp, &lv = *(dp=new (buf) cc5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc5)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc5.c");
+ test_class_info(&lv, &cd_cc5);
+ dp->~cc5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc5(Test_cc5, "cc5", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc5C1Ev();
+extern void _ZN3cc5D1Ev();
+Name_Map name_map_cc5[] = {
+ NSPAIR(_ZN3cc5C1Ev),
+ NSPAIR(_ZN3cc5D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc5[];
+extern void _ZN3cc53fooEv();
+static VTBL_ENTRY vtc_cc5[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc5[0]),
+ (VTBL_ENTRY)&_ZN3cc53fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc5[];
+extern VTBL_ENTRY _ZTV3cc5[];
+Class_Descriptor cd_cc5 = { "cc5", // class name
+ 0,0,//no base classes
+ &(vtc_cc5[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc5),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc5),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5 {
+ int d;
+ dd5(); // _ZN3dd5C1Ev
+ virtual void foo(); // _ZN3dd53fooEv
+ ~dd5(); // tgen
+};
+//SIG(-1 dd5) C1{ v1 Fi}
+
+
+ dd5 ::dd5(){ note_ctor("dd5", this);}
+void dd5 ::foo(){vfunc_called(this, "_ZN3dd53fooEv");}
+dd5 ::~dd5(){ note_dtor("dd5", this);} // tgen
+
+static void Test_dd5()
+{
+ extern Class_Descriptor cd_dd5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd5, buf);
+ dd5 *dp, &lv = *(dp=new (buf) dd5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5.d");
+ test_class_info(&lv, &cd_dd5);
+ dp->~dd5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5(Test_dd5, "dd5", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd5C1Ev();
+extern void _ZN3dd5D1Ev();
+Name_Map name_map_dd5[] = {
+ NSPAIR(_ZN3dd5C1Ev),
+ NSPAIR(_ZN3dd5D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd5[];
+extern void _ZN3dd53fooEv();
+static VTBL_ENTRY vtc_dd5[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd5[0]),
+ (VTBL_ENTRY)&_ZN3dd53fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd5[];
+extern VTBL_ENTRY _ZTV3dd5[];
+Class_Descriptor cd_dd5 = { "dd5", // class name
+ 0,0,//no base classes
+ &(vtc_dd5[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd5),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd5),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee5 : virtual aa5 , bb5 {
+ int e;
+ ee5(const ABISELECT(__tsi64,int) *const *); // _ZN3ee5C2Ev
+ virtual void foo(); // _ZN3ee53fooEv
+ ~ee5(); // tgen
+ ee5(); // tgen
+};
+//SIG(-1 ee5) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee5 ::ee5(const ABISELECT(__tsi64,int) *const *){}
+void ee5 ::foo(){vfunc_called(this, "_ZN3ee53fooEv");}
+ee5 ::~ee5(){ note_dtor("ee5", this);} // tgen
+ee5 ::ee5(){ note_ctor("ee5", this);} // tgen
+
+static void Test_ee5()
+{
+ extern Class_Descriptor cd_ee5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee5, buf);
+ ee5 *dp, &lv = *(dp=new (buf) ee5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee5)");
+ check_base_class_offset(lv, (aa5*), ABISELECT(16,12), "ee5");
+ check_base_class_offset(lv, (bb5*), 0, "ee5");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee5.e");
+ test_class_info(&lv, &cd_ee5);
+ dp->~ee5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee5(Test_ee5, "ee5", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee5C1Ev();
+extern void _ZN3ee5D1Ev();
+Name_Map name_map_ee5[] = {
+ NSPAIR(_ZN3ee5C1Ev),
+ NSPAIR(_ZN3ee5D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa5;
+extern VTBL_ENTRY _ZTI3aa5[];
+extern VTBL_ENTRY _ZTV3aa5[];
+extern Class_Descriptor cd_bb5;
+extern VTBL_ENTRY _ZTI3bb5[];
+extern VTBL_ENTRY _ZTV3bb5[];
+static Base_Class bases_ee5[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa5, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb5, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee5[];
+extern void _ZN3ee53fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee53fooEv,_ZTv0_n12_N3ee53fooEv)();
+extern void ABISELECT(_ZThn16_N3ee53fooEv,_ZThn12_N3ee53fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee5[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee5[0]),
+ (VTBL_ENTRY)&_ZN3ee53fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ee5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee53fooEv,_ZTv0_n12_N3ee53fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee5[];
+static VTT_ENTRY vtt_ee5[] = {
+ {&(_ZTV3ee5[3]), 3,8},
+ {&(_ZTV3ee5[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ee5[];
+extern VTBL_ENTRY _ZTV3ee5[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee5[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee53fooEv,_ZTv0_n12_N3ee53fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee53fooEv,_ZThn12_N3ee53fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee5 = { "ee5", // class name
+ bases_ee5, 2,
+ &(vtc_ee5[0]), // expected_vtbl_contents
+ &(vtt_ee5[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee5),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee5),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee5),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff5 : virtual cc5 , dd5 {
+ int f;
+ ff5(const ABISELECT(__tsi64,int) *const *); // _ZN3ff5C2Ev
+ virtual void foo(); // _ZN3ff53fooEv
+ ~ff5(); // tgen
+ ff5(); // tgen
+};
+//SIG(-1 ff5) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff5 ::ff5(const ABISELECT(__tsi64,int) *const *){}
+void ff5 ::foo(){vfunc_called(this, "_ZN3ff53fooEv");}
+ff5 ::~ff5(){ note_dtor("ff5", this);} // tgen
+ff5 ::ff5(){ note_ctor("ff5", this);} // tgen
+
+static void Test_ff5()
+{
+ extern Class_Descriptor cd_ff5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff5, buf);
+ ff5 *dp, &lv = *(dp=new (buf) ff5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff5)");
+ check_base_class_offset(lv, (cc5*), ABISELECT(16,12), "ff5");
+ check_base_class_offset(lv, (dd5*), 0, "ff5");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff5.f");
+ test_class_info(&lv, &cd_ff5);
+ dp->~ff5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff5(Test_ff5, "ff5", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff5C1Ev();
+extern void _ZN3ff5D1Ev();
+Name_Map name_map_ff5[] = {
+ NSPAIR(_ZN3ff5C1Ev),
+ NSPAIR(_ZN3ff5D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc5;
+extern VTBL_ENTRY _ZTI3cc5[];
+extern VTBL_ENTRY _ZTV3cc5[];
+extern Class_Descriptor cd_dd5;
+extern VTBL_ENTRY _ZTI3dd5[];
+extern VTBL_ENTRY _ZTV3dd5[];
+static Base_Class bases_ff5[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc5, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd5, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff5[];
+extern void _ZN3ff53fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ff53fooEv,_ZTv0_n12_N3ff53fooEv)();
+extern void ABISELECT(_ZThn16_N3ff53fooEv,_ZThn12_N3ff53fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff5[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff5[0]),
+ (VTBL_ENTRY)&_ZN3ff53fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ff5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff53fooEv,_ZTv0_n12_N3ff53fooEv),
+};
+extern VTBL_ENTRY _ZTV3ff5[];
+static VTT_ENTRY vtt_ff5[] = {
+ {&(_ZTV3ff5[3]), 3,8},
+ {&(_ZTV3ff5[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ff5[];
+extern VTBL_ENTRY _ZTV3ff5[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff5[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff53fooEv,_ZTv0_n12_N3ff53fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ff53fooEv,_ZThn12_N3ff53fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff5 = { "ff5", // class name
+ bases_ff5, 2,
+ &(vtc_ff5[0]), // expected_vtbl_contents
+ &(vtt_ff5[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff5),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff5),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ff5),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg5 : ee5 , ff5 {
+ int g;
+ gg5(const ABISELECT(__tsi64,int) *const *); // _ZN3gg5C2Ev
+ virtual void foo(); // _ZN3gg53fooEv
+ ~gg5(); // tgen
+ gg5(); // tgen
+};
+//SIG(1 gg5) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg5 ::gg5(const ABISELECT(__tsi64,int) *const *){}
+void gg5 ::foo(){vfunc_called(this, "_ZN3gg53fooEv");}
+gg5 ::~gg5(){ note_dtor("gg5", this);} // tgen
+gg5 ::gg5(){ note_ctor("gg5", this);} // tgen
+
+static void Test_gg5()
+{
+ extern Class_Descriptor cd_gg5;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg5, buf);
+ gg5 *dp, &lv = *(dp=new (buf) gg5());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg5)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg5)");
+ check_base_class_offset(lv, (aa5*)(ee5*), ABISELECT(40,28), "gg5");
+ check_base_class_offset(lv, (bb5*)(ee5*), 0, "gg5");
+ check_base_class_offset(lv, (ee5*), 0, "gg5");
+ check_base_class_offset(lv, (cc5*)(ff5*), ABISELECT(56,36), "gg5");
+ check_base_class_offset(lv, (dd5*)(ff5*), ABISELECT(16,12), "gg5");
+ check_base_class_offset(lv, (ff5*), ABISELECT(16,12), "gg5");
+ check_field_offset(lv, g, ABISELECT(32,24), "gg5.g");
+ test_class_info(&lv, &cd_gg5);
+ dp->~gg5();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg5(Test_gg5, "gg5", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg5C1Ev();
+extern void _ZN3gg5D1Ev();
+Name_Map name_map_gg5[] = {
+ NSPAIR(_ZN3gg5C1Ev),
+ NSPAIR(_ZN3gg5D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa5;
+extern VTBL_ENTRY _ZTI3aa5[];
+extern VTBL_ENTRY _ZTV3aa5[];
+extern Class_Descriptor cd_bb5;
+extern VTBL_ENTRY _ZTI3bb5[];
+extern VTBL_ENTRY _ZTV3bb5[];
+extern Class_Descriptor cd_ee5;
+extern VTBL_ENTRY _ZTI3ee5[];
+extern VTBL_ENTRY _ZTV3ee5[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee5[];
+extern Class_Descriptor cd_cc5;
+extern VTBL_ENTRY _ZTI3cc5[];
+extern VTBL_ENTRY _ZTV3cc5[];
+extern Class_Descriptor cd_dd5;
+extern VTBL_ENTRY _ZTI3dd5[];
+extern VTBL_ENTRY _ZTV3dd5[];
+extern Class_Descriptor cd_ff5;
+extern VTBL_ENTRY _ZTI3ff5[];
+extern VTBL_ENTRY _ZTV3ff5[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff5[];
+static Base_Class bases_gg5[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa5, ABISELECT(40,28), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb5, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee5, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc5, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd5, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff5, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg5[];
+extern void _ZN3gg53fooEv();
+extern void ABISELECT(_ZThn16_N3gg53fooEv,_ZThn12_N3gg53fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg53fooEv,_ZTv0_n12_N3gg53fooEv)();
+extern void ABISELECT(_ZThn40_N3gg53fooEv,_ZThn28_N3gg53fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3gg53fooEv,_ZTv0_n12_N3gg53fooEv)();
+extern void ABISELECT(_ZThn56_N3gg53fooEv,_ZThn36_N3gg53fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg5[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg5[0]),
+ (VTBL_ENTRY)&_ZN3gg53fooEv,
+ ABISELECT(40,24),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3gg5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg53fooEv,_ZThn12_N3gg53fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI3gg5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg53fooEv,_ZTv0_n12_N3gg53fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg53fooEv,_ZTv0_n12_N3gg53fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg5[];
+extern void _ZN3ee53fooEv();
+static VTBL_ENTRY _tg__ZTV3ee5__3gg5[] = {
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee5[0]),
+ (VTBL_ENTRY)&_ZN3ee53fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee53fooEv,_ZTv0_n12_N3ee53fooEv)();
+extern void ABISELECT(_ZThn40_N3ee53fooEv,_ZThn28_N3ee53fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa5__3ee5__3gg5[] = {
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI3ee5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee53fooEv,_ZTv0_n12_N3ee53fooEv),
+};
+extern void _ZN3ff53fooEv();
+static VTBL_ENTRY _tg__ZTV3ff5__3gg5[] = {
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff5[0]),
+ (VTBL_ENTRY)&_ZN3ff53fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ff53fooEv,_ZTv0_n12_N3ff53fooEv)();
+extern void ABISELECT(_ZThn40_N3ff53fooEv,_ZThn24_N3ff53fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3cc5__3ff5__3gg5[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI3ff5[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff53fooEv,_ZTv0_n12_N3ff53fooEv),
+};
+static VTT_ENTRY vtt_gg5[] = {
+ {&(_ZTV3gg5[4]), 4,17},
+ {&(_tg__ZTV3ee5__3gg5[3]), 3,4},
+ {&(_tg__ZTV3aa5__3ee5__3gg5[3]), 3,4},
+ {&(_tg__ZTV3ff5__3gg5[3]), 3,4},
+ {&(_tg__ZTV3cc5__3ff5__3gg5[3]), 3,4},
+ {&(_ZTV3gg5[12]), 12,17},
+ {&(_ZTV3gg5[8]), 8,17},
+ {&(_ZTV3gg5[16]), 16,17},
+};
+extern VTBL_ENTRY _ZTI3gg5[];
+extern VTBL_ENTRY _ZTV3gg5[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg5[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff53fooEv,_ZTv0_n12_N3ff53fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ff53fooEv,_ZThn24_N3ff53fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee53fooEv,_ZTv0_n12_N3ee53fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ee53fooEv,_ZThn28_N3ee53fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg53fooEv,_ZTv0_n12_N3gg53fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg53fooEv,_ZThn36_N3gg53fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3gg53fooEv,_ZThn28_N3gg53fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg5 = { "gg5", // class name
+ bases_gg5, 6,
+ &(vtc_gg5[0]), // expected_vtbl_contents
+ &(vtt_gg5[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg5),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg5),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg5),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa6 {
+ int a;
+ aa6(); // _ZN3aa6C1Ev
+ virtual void foo(); // _ZN3aa63fooEv
+ ~aa6(); // tgen
+};
+//SIG(-1 aa6) C1{ v1 Fi}
+
+
+ aa6 ::aa6(){ note_ctor("aa6", this);}
+void aa6 ::foo(){vfunc_called(this, "_ZN3aa63fooEv");}
+aa6 ::~aa6(){ note_dtor("aa6", this);} // tgen
+
+static void Test_aa6()
+{
+ extern Class_Descriptor cd_aa6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa6, buf);
+ aa6 *dp, &lv = *(dp=new (buf) aa6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa6)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa6.a");
+ test_class_info(&lv, &cd_aa6);
+ dp->~aa6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa6(Test_aa6, "aa6", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa6C1Ev();
+extern void _ZN3aa6D1Ev();
+Name_Map name_map_aa6[] = {
+ NSPAIR(_ZN3aa6C1Ev),
+ NSPAIR(_ZN3aa6D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa6[];
+extern void _ZN3aa63fooEv();
+static VTBL_ENTRY vtc_aa6[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa6[0]),
+ (VTBL_ENTRY)&_ZN3aa63fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa6[];
+extern VTBL_ENTRY _ZTV3aa6[];
+Class_Descriptor cd_aa6 = { "aa6", // class name
+ 0,0,//no base classes
+ &(vtc_aa6[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa6),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa6),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb6 {
+ int b;
+ bb6(); // _ZN3bb6C1Ev
+ virtual void foo(); // _ZN3bb63fooEv
+ ~bb6(); // tgen
+};
+//SIG(-1 bb6) C1{ v1 Fi}
+
+
+ bb6 ::bb6(){ note_ctor("bb6", this);}
+void bb6 ::foo(){vfunc_called(this, "_ZN3bb63fooEv");}
+bb6 ::~bb6(){ note_dtor("bb6", this);} // tgen
+
+static void Test_bb6()
+{
+ extern Class_Descriptor cd_bb6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb6, buf);
+ bb6 *dp, &lv = *(dp=new (buf) bb6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb6)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb6.b");
+ test_class_info(&lv, &cd_bb6);
+ dp->~bb6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb6(Test_bb6, "bb6", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb6C1Ev();
+extern void _ZN3bb6D1Ev();
+Name_Map name_map_bb6[] = {
+ NSPAIR(_ZN3bb6C1Ev),
+ NSPAIR(_ZN3bb6D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb6[];
+extern void _ZN3bb63fooEv();
+static VTBL_ENTRY vtc_bb6[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb6[0]),
+ (VTBL_ENTRY)&_ZN3bb63fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb6[];
+extern VTBL_ENTRY _ZTV3bb6[];
+Class_Descriptor cd_bb6 = { "bb6", // class name
+ 0,0,//no base classes
+ &(vtc_bb6[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb6),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb6),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc6 {
+ int c;
+ cc6(); // _ZN3cc6C1Ev
+ virtual void foo(); // _ZN3cc63fooEv
+ ~cc6(); // tgen
+};
+//SIG(-1 cc6) C1{ v1 Fi}
+
+
+ cc6 ::cc6(){ note_ctor("cc6", this);}
+void cc6 ::foo(){vfunc_called(this, "_ZN3cc63fooEv");}
+cc6 ::~cc6(){ note_dtor("cc6", this);} // tgen
+
+static void Test_cc6()
+{
+ extern Class_Descriptor cd_cc6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc6, buf);
+ cc6 *dp, &lv = *(dp=new (buf) cc6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc6)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc6.c");
+ test_class_info(&lv, &cd_cc6);
+ dp->~cc6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc6(Test_cc6, "cc6", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc6C1Ev();
+extern void _ZN3cc6D1Ev();
+Name_Map name_map_cc6[] = {
+ NSPAIR(_ZN3cc6C1Ev),
+ NSPAIR(_ZN3cc6D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc6[];
+extern void _ZN3cc63fooEv();
+static VTBL_ENTRY vtc_cc6[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc6[0]),
+ (VTBL_ENTRY)&_ZN3cc63fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc6[];
+extern VTBL_ENTRY _ZTV3cc6[];
+Class_Descriptor cd_cc6 = { "cc6", // class name
+ 0,0,//no base classes
+ &(vtc_cc6[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc6),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc6),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6 {
+ int d;
+ dd6(); // _ZN3dd6C1Ev
+ virtual void foo(); // _ZN3dd63fooEv
+ ~dd6(); // tgen
+};
+//SIG(-1 dd6) C1{ v1 Fi}
+
+
+ dd6 ::dd6(){ note_ctor("dd6", this);}
+void dd6 ::foo(){vfunc_called(this, "_ZN3dd63fooEv");}
+dd6 ::~dd6(){ note_dtor("dd6", this);} // tgen
+
+static void Test_dd6()
+{
+ extern Class_Descriptor cd_dd6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd6, buf);
+ dd6 *dp, &lv = *(dp=new (buf) dd6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd6.d");
+ test_class_info(&lv, &cd_dd6);
+ dp->~dd6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6(Test_dd6, "dd6", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd6C1Ev();
+extern void _ZN3dd6D1Ev();
+Name_Map name_map_dd6[] = {
+ NSPAIR(_ZN3dd6C1Ev),
+ NSPAIR(_ZN3dd6D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd6[];
+extern void _ZN3dd63fooEv();
+static VTBL_ENTRY vtc_dd6[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd6[0]),
+ (VTBL_ENTRY)&_ZN3dd63fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd6[];
+extern VTBL_ENTRY _ZTV3dd6[];
+Class_Descriptor cd_dd6 = { "dd6", // class name
+ 0,0,//no base classes
+ &(vtc_dd6[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd6),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd6),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee6 : aa6 , virtual bb6 {
+ int e;
+ ee6(const ABISELECT(__tsi64,int) *const *); // _ZN3ee6C2Ev
+ virtual void foo(); // _ZN3ee63fooEv
+ ~ee6(); // tgen
+ ee6(); // tgen
+};
+//SIG(-1 ee6) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee6 ::ee6(const ABISELECT(__tsi64,int) *const *){}
+void ee6 ::foo(){vfunc_called(this, "_ZN3ee63fooEv");}
+ee6 ::~ee6(){ note_dtor("ee6", this);} // tgen
+ee6 ::ee6(){ note_ctor("ee6", this);} // tgen
+
+static void Test_ee6()
+{
+ extern Class_Descriptor cd_ee6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee6, buf);
+ ee6 *dp, &lv = *(dp=new (buf) ee6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee6)");
+ check_base_class_offset(lv, (aa6*), 0, "ee6");
+ check_base_class_offset(lv, (bb6*), ABISELECT(16,12), "ee6");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee6.e");
+ test_class_info(&lv, &cd_ee6);
+ dp->~ee6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee6(Test_ee6, "ee6", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee6C1Ev();
+extern void _ZN3ee6D1Ev();
+Name_Map name_map_ee6[] = {
+ NSPAIR(_ZN3ee6C1Ev),
+ NSPAIR(_ZN3ee6D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa6;
+extern VTBL_ENTRY _ZTI3aa6[];
+extern VTBL_ENTRY _ZTV3aa6[];
+extern Class_Descriptor cd_bb6;
+extern VTBL_ENTRY _ZTI3bb6[];
+extern VTBL_ENTRY _ZTV3bb6[];
+static Base_Class bases_ee6[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa6, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb6, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee6[];
+extern void _ZN3ee63fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee63fooEv,_ZTv0_n12_N3ee63fooEv)();
+extern void ABISELECT(_ZThn16_N3ee63fooEv,_ZThn12_N3ee63fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee6[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee6[0]),
+ (VTBL_ENTRY)&_ZN3ee63fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ee6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee63fooEv,_ZTv0_n12_N3ee63fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee6[];
+static VTT_ENTRY vtt_ee6[] = {
+ {&(_ZTV3ee6[3]), 3,8},
+ {&(_ZTV3ee6[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ee6[];
+extern VTBL_ENTRY _ZTV3ee6[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee6[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee63fooEv,_ZTv0_n12_N3ee63fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee63fooEv,_ZThn12_N3ee63fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee6 = { "ee6", // class name
+ bases_ee6, 2,
+ &(vtc_ee6[0]), // expected_vtbl_contents
+ &(vtt_ee6[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee6),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee6),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee6),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff6 : virtual cc6 , dd6 {
+ int f;
+ ff6(const ABISELECT(__tsi64,int) *const *); // _ZN3ff6C2Ev
+ virtual void foo(); // _ZN3ff63fooEv
+ ~ff6(); // tgen
+ ff6(); // tgen
+};
+//SIG(-1 ff6) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff6 ::ff6(const ABISELECT(__tsi64,int) *const *){}
+void ff6 ::foo(){vfunc_called(this, "_ZN3ff63fooEv");}
+ff6 ::~ff6(){ note_dtor("ff6", this);} // tgen
+ff6 ::ff6(){ note_ctor("ff6", this);} // tgen
+
+static void Test_ff6()
+{
+ extern Class_Descriptor cd_ff6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff6, buf);
+ ff6 *dp, &lv = *(dp=new (buf) ff6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff6)");
+ check_base_class_offset(lv, (cc6*), ABISELECT(16,12), "ff6");
+ check_base_class_offset(lv, (dd6*), 0, "ff6");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff6.f");
+ test_class_info(&lv, &cd_ff6);
+ dp->~ff6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff6(Test_ff6, "ff6", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff6C1Ev();
+extern void _ZN3ff6D1Ev();
+Name_Map name_map_ff6[] = {
+ NSPAIR(_ZN3ff6C1Ev),
+ NSPAIR(_ZN3ff6D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc6;
+extern VTBL_ENTRY _ZTI3cc6[];
+extern VTBL_ENTRY _ZTV3cc6[];
+extern Class_Descriptor cd_dd6;
+extern VTBL_ENTRY _ZTI3dd6[];
+extern VTBL_ENTRY _ZTV3dd6[];
+static Base_Class bases_ff6[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc6, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd6, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff6[];
+extern void _ZN3ff63fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ff63fooEv,_ZTv0_n12_N3ff63fooEv)();
+extern void ABISELECT(_ZThn16_N3ff63fooEv,_ZThn12_N3ff63fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff6[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff6[0]),
+ (VTBL_ENTRY)&_ZN3ff63fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ff6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff63fooEv,_ZTv0_n12_N3ff63fooEv),
+};
+extern VTBL_ENTRY _ZTV3ff6[];
+static VTT_ENTRY vtt_ff6[] = {
+ {&(_ZTV3ff6[3]), 3,8},
+ {&(_ZTV3ff6[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ff6[];
+extern VTBL_ENTRY _ZTV3ff6[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff6[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff63fooEv,_ZTv0_n12_N3ff63fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ff63fooEv,_ZThn12_N3ff63fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff6 = { "ff6", // class name
+ bases_ff6, 2,
+ &(vtc_ff6[0]), // expected_vtbl_contents
+ &(vtt_ff6[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff6),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff6),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ff6),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg6 : ee6 , ff6 {
+ int g;
+ gg6(const ABISELECT(__tsi64,int) *const *); // _ZN3gg6C2Ev
+ virtual void foo(); // _ZN3gg63fooEv
+ ~gg6(); // tgen
+ gg6(); // tgen
+};
+//SIG(1 gg6) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg6 ::gg6(const ABISELECT(__tsi64,int) *const *){}
+void gg6 ::foo(){vfunc_called(this, "_ZN3gg63fooEv");}
+gg6 ::~gg6(){ note_dtor("gg6", this);} // tgen
+gg6 ::gg6(){ note_ctor("gg6", this);} // tgen
+
+static void Test_gg6()
+{
+ extern Class_Descriptor cd_gg6;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg6, buf);
+ gg6 *dp, &lv = *(dp=new (buf) gg6());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg6)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg6)");
+ check_base_class_offset(lv, (aa6*)(ee6*), 0, "gg6");
+ check_base_class_offset(lv, (bb6*)(ee6*), ABISELECT(40,28), "gg6");
+ check_base_class_offset(lv, (ee6*), 0, "gg6");
+ check_base_class_offset(lv, (cc6*)(ff6*), ABISELECT(56,36), "gg6");
+ check_base_class_offset(lv, (dd6*)(ff6*), ABISELECT(16,12), "gg6");
+ check_base_class_offset(lv, (ff6*), ABISELECT(16,12), "gg6");
+ check_field_offset(lv, g, ABISELECT(32,24), "gg6.g");
+ test_class_info(&lv, &cd_gg6);
+ dp->~gg6();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg6(Test_gg6, "gg6", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg6C1Ev();
+extern void _ZN3gg6D1Ev();
+Name_Map name_map_gg6[] = {
+ NSPAIR(_ZN3gg6C1Ev),
+ NSPAIR(_ZN3gg6D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa6;
+extern VTBL_ENTRY _ZTI3aa6[];
+extern VTBL_ENTRY _ZTV3aa6[];
+extern Class_Descriptor cd_bb6;
+extern VTBL_ENTRY _ZTI3bb6[];
+extern VTBL_ENTRY _ZTV3bb6[];
+extern Class_Descriptor cd_ee6;
+extern VTBL_ENTRY _ZTI3ee6[];
+extern VTBL_ENTRY _ZTV3ee6[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee6[];
+extern Class_Descriptor cd_cc6;
+extern VTBL_ENTRY _ZTI3cc6[];
+extern VTBL_ENTRY _ZTV3cc6[];
+extern Class_Descriptor cd_dd6;
+extern VTBL_ENTRY _ZTI3dd6[];
+extern VTBL_ENTRY _ZTV3dd6[];
+extern Class_Descriptor cd_ff6;
+extern VTBL_ENTRY _ZTI3ff6[];
+extern VTBL_ENTRY _ZTV3ff6[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff6[];
+static Base_Class bases_gg6[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa6, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb6, ABISELECT(40,28), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee6, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc6, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd6, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff6, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg6[];
+extern void _ZN3gg63fooEv();
+extern void ABISELECT(_ZThn16_N3gg63fooEv,_ZThn12_N3gg63fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg63fooEv,_ZTv0_n12_N3gg63fooEv)();
+extern void ABISELECT(_ZThn40_N3gg63fooEv,_ZThn28_N3gg63fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3gg63fooEv,_ZTv0_n12_N3gg63fooEv)();
+extern void ABISELECT(_ZThn56_N3gg63fooEv,_ZThn36_N3gg63fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg6[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg6[0]),
+ (VTBL_ENTRY)&_ZN3gg63fooEv,
+ ABISELECT(40,24),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3gg6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg63fooEv,_ZThn12_N3gg63fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI3gg6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg63fooEv,_ZTv0_n12_N3gg63fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg63fooEv,_ZTv0_n12_N3gg63fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg6[];
+extern void _ZN3ee63fooEv();
+static VTBL_ENTRY _tg__ZTV3ee6__3gg6[] = {
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee6[0]),
+ (VTBL_ENTRY)&_ZN3ee63fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee63fooEv,_ZTv0_n12_N3ee63fooEv)();
+extern void ABISELECT(_ZThn40_N3ee63fooEv,_ZThn28_N3ee63fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3bb6__3ee6__3gg6[] = {
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI3ee6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee63fooEv,_ZTv0_n12_N3ee63fooEv),
+};
+extern void _ZN3ff63fooEv();
+static VTBL_ENTRY _tg__ZTV3ff6__3gg6[] = {
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff6[0]),
+ (VTBL_ENTRY)&_ZN3ff63fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ff63fooEv,_ZTv0_n12_N3ff63fooEv)();
+extern void ABISELECT(_ZThn40_N3ff63fooEv,_ZThn24_N3ff63fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3cc6__3ff6__3gg6[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI3ff6[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff63fooEv,_ZTv0_n12_N3ff63fooEv),
+};
+static VTT_ENTRY vtt_gg6[] = {
+ {&(_ZTV3gg6[4]), 4,17},
+ {&(_tg__ZTV3ee6__3gg6[3]), 3,4},
+ {&(_tg__ZTV3bb6__3ee6__3gg6[3]), 3,4},
+ {&(_tg__ZTV3ff6__3gg6[3]), 3,4},
+ {&(_tg__ZTV3cc6__3ff6__3gg6[3]), 3,4},
+ {&(_ZTV3gg6[12]), 12,17},
+ {&(_ZTV3gg6[8]), 8,17},
+ {&(_ZTV3gg6[16]), 16,17},
+};
+extern VTBL_ENTRY _ZTI3gg6[];
+extern VTBL_ENTRY _ZTV3gg6[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg6[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff63fooEv,_ZTv0_n12_N3ff63fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ff63fooEv,_ZThn24_N3ff63fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee63fooEv,_ZTv0_n12_N3ee63fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ee63fooEv,_ZThn28_N3ee63fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg63fooEv,_ZTv0_n12_N3gg63fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg63fooEv,_ZThn36_N3gg63fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3gg63fooEv,_ZThn28_N3gg63fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg6 = { "gg6", // class name
+ bases_gg6, 6,
+ &(vtc_gg6[0]), // expected_vtbl_contents
+ &(vtt_gg6[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg6),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg6),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg6),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa7 {
+ int a;
+ aa7(); // _ZN3aa7C1Ev
+ virtual void foo(); // _ZN3aa73fooEv
+ ~aa7(); // tgen
+};
+//SIG(-1 aa7) C1{ v1 Fi}
+
+
+ aa7 ::aa7(){ note_ctor("aa7", this);}
+void aa7 ::foo(){vfunc_called(this, "_ZN3aa73fooEv");}
+aa7 ::~aa7(){ note_dtor("aa7", this);} // tgen
+
+static void Test_aa7()
+{
+ extern Class_Descriptor cd_aa7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa7, buf);
+ aa7 *dp, &lv = *(dp=new (buf) aa7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa7)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa7.a");
+ test_class_info(&lv, &cd_aa7);
+ dp->~aa7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa7(Test_aa7, "aa7", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa7C1Ev();
+extern void _ZN3aa7D1Ev();
+Name_Map name_map_aa7[] = {
+ NSPAIR(_ZN3aa7C1Ev),
+ NSPAIR(_ZN3aa7D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa7[];
+extern void _ZN3aa73fooEv();
+static VTBL_ENTRY vtc_aa7[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa7[0]),
+ (VTBL_ENTRY)&_ZN3aa73fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa7[];
+extern VTBL_ENTRY _ZTV3aa7[];
+Class_Descriptor cd_aa7 = { "aa7", // class name
+ 0,0,//no base classes
+ &(vtc_aa7[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa7),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa7),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb7 {
+ int b;
+ bb7(); // _ZN3bb7C1Ev
+ virtual void foo(); // _ZN3bb73fooEv
+ ~bb7(); // tgen
+};
+//SIG(-1 bb7) C1{ v1 Fi}
+
+
+ bb7 ::bb7(){ note_ctor("bb7", this);}
+void bb7 ::foo(){vfunc_called(this, "_ZN3bb73fooEv");}
+bb7 ::~bb7(){ note_dtor("bb7", this);} // tgen
+
+static void Test_bb7()
+{
+ extern Class_Descriptor cd_bb7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb7, buf);
+ bb7 *dp, &lv = *(dp=new (buf) bb7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb7)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb7.b");
+ test_class_info(&lv, &cd_bb7);
+ dp->~bb7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb7(Test_bb7, "bb7", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb7C1Ev();
+extern void _ZN3bb7D1Ev();
+Name_Map name_map_bb7[] = {
+ NSPAIR(_ZN3bb7C1Ev),
+ NSPAIR(_ZN3bb7D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb7[];
+extern void _ZN3bb73fooEv();
+static VTBL_ENTRY vtc_bb7[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb7[0]),
+ (VTBL_ENTRY)&_ZN3bb73fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb7[];
+extern VTBL_ENTRY _ZTV3bb7[];
+Class_Descriptor cd_bb7 = { "bb7", // class name
+ 0,0,//no base classes
+ &(vtc_bb7[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb7),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb7),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc7 {
+ int c;
+ cc7(); // _ZN3cc7C1Ev
+ virtual void foo(); // _ZN3cc73fooEv
+ ~cc7(); // tgen
+};
+//SIG(-1 cc7) C1{ v1 Fi}
+
+
+ cc7 ::cc7(){ note_ctor("cc7", this);}
+void cc7 ::foo(){vfunc_called(this, "_ZN3cc73fooEv");}
+cc7 ::~cc7(){ note_dtor("cc7", this);} // tgen
+
+static void Test_cc7()
+{
+ extern Class_Descriptor cd_cc7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc7, buf);
+ cc7 *dp, &lv = *(dp=new (buf) cc7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc7)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc7.c");
+ test_class_info(&lv, &cd_cc7);
+ dp->~cc7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc7(Test_cc7, "cc7", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc7C1Ev();
+extern void _ZN3cc7D1Ev();
+Name_Map name_map_cc7[] = {
+ NSPAIR(_ZN3cc7C1Ev),
+ NSPAIR(_ZN3cc7D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc7[];
+extern void _ZN3cc73fooEv();
+static VTBL_ENTRY vtc_cc7[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc7[0]),
+ (VTBL_ENTRY)&_ZN3cc73fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc7[];
+extern VTBL_ENTRY _ZTV3cc7[];
+Class_Descriptor cd_cc7 = { "cc7", // class name
+ 0,0,//no base classes
+ &(vtc_cc7[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc7),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc7),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7 {
+ int d;
+ dd7(); // _ZN3dd7C1Ev
+ virtual void foo(); // _ZN3dd73fooEv
+ ~dd7(); // tgen
+};
+//SIG(-1 dd7) C1{ v1 Fi}
+
+
+ dd7 ::dd7(){ note_ctor("dd7", this);}
+void dd7 ::foo(){vfunc_called(this, "_ZN3dd73fooEv");}
+dd7 ::~dd7(){ note_dtor("dd7", this);} // tgen
+
+static void Test_dd7()
+{
+ extern Class_Descriptor cd_dd7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd7, buf);
+ dd7 *dp, &lv = *(dp=new (buf) dd7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7.d");
+ test_class_info(&lv, &cd_dd7);
+ dp->~dd7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7(Test_dd7, "dd7", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd7C1Ev();
+extern void _ZN3dd7D1Ev();
+Name_Map name_map_dd7[] = {
+ NSPAIR(_ZN3dd7C1Ev),
+ NSPAIR(_ZN3dd7D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd7[];
+extern void _ZN3dd73fooEv();
+static VTBL_ENTRY vtc_dd7[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd7[0]),
+ (VTBL_ENTRY)&_ZN3dd73fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd7[];
+extern VTBL_ENTRY _ZTV3dd7[];
+Class_Descriptor cd_dd7 = { "dd7", // class name
+ 0,0,//no base classes
+ &(vtc_dd7[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd7),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd7),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee7 : virtual aa7 , virtual bb7 {
+ int e;
+ ee7(const ABISELECT(__tsi64,int) *const *); // _ZN3ee7C2Ev
+ virtual void foo(); // _ZN3ee73fooEv
+ ~ee7(); // tgen
+ ee7(); // tgen
+};
+//SIG(-1 ee7) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee7 ::ee7(const ABISELECT(__tsi64,int) *const *){}
+void ee7 ::foo(){vfunc_called(this, "_ZN3ee73fooEv");}
+ee7 ::~ee7(){ note_dtor("ee7", this);} // tgen
+ee7 ::ee7(){ note_ctor("ee7", this);} // tgen
+
+static void Test_ee7()
+{
+ extern Class_Descriptor cd_ee7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee7, buf);
+ ee7 *dp, &lv = *(dp=new (buf) ee7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee7)");
+ check_base_class_offset(lv, (aa7*), ABISELECT(16,8), "ee7");
+ check_base_class_offset(lv, (bb7*), ABISELECT(32,16), "ee7");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee7.e");
+ test_class_info(&lv, &cd_ee7);
+ dp->~ee7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee7(Test_ee7, "ee7", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN3ee7C1Ev();
+extern void _ZN3ee7D1Ev();
+Name_Map name_map_ee7[] = {
+ NSPAIR(_ZN3ee7C1Ev),
+ NSPAIR(_ZN3ee7D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa7;
+extern VTBL_ENTRY _ZTI3aa7[];
+extern VTBL_ENTRY _ZTV3aa7[];
+extern Class_Descriptor cd_bb7;
+extern VTBL_ENTRY _ZTI3bb7[];
+extern VTBL_ENTRY _ZTV3bb7[];
+static Base_Class bases_ee7[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa7, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb7, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee7[];
+extern void _ZN3ee73fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv)();
+extern void ABISELECT(_ZThn16_N3ee73fooEv,_ZThn8_N3ee73fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv)();
+extern void ABISELECT(_ZThn32_N3ee73fooEv,_ZThn16_N3ee73fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee7[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee7[0]),
+ (VTBL_ENTRY)&_ZN3ee73fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ee7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI3ee7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee7[];
+static VTT_ENTRY vtt_ee7[] = {
+ {&(_ZTV3ee7[4]), 4,13},
+ {&(_ZTV3ee7[8]), 8,13},
+ {&(_ZTV3ee7[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI3ee7[];
+extern VTBL_ENTRY _ZTV3ee7[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee7[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N3ee73fooEv,_ZThn16_N3ee73fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee73fooEv,_ZThn8_N3ee73fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee7 = { "ee7", // class name
+ bases_ee7, 2,
+ &(vtc_ee7[0]), // expected_vtbl_contents
+ &(vtt_ee7[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI3ee7),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee7),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee7),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff7 : virtual cc7 , dd7 {
+ int f;
+ ff7(const ABISELECT(__tsi64,int) *const *); // _ZN3ff7C2Ev
+ virtual void foo(); // _ZN3ff73fooEv
+ ~ff7(); // tgen
+ ff7(); // tgen
+};
+//SIG(-1 ff7) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff7 ::ff7(const ABISELECT(__tsi64,int) *const *){}
+void ff7 ::foo(){vfunc_called(this, "_ZN3ff73fooEv");}
+ff7 ::~ff7(){ note_dtor("ff7", this);} // tgen
+ff7 ::ff7(){ note_ctor("ff7", this);} // tgen
+
+static void Test_ff7()
+{
+ extern Class_Descriptor cd_ff7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff7, buf);
+ ff7 *dp, &lv = *(dp=new (buf) ff7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff7)");
+ check_base_class_offset(lv, (cc7*), ABISELECT(16,12), "ff7");
+ check_base_class_offset(lv, (dd7*), 0, "ff7");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff7.f");
+ test_class_info(&lv, &cd_ff7);
+ dp->~ff7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff7(Test_ff7, "ff7", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff7C1Ev();
+extern void _ZN3ff7D1Ev();
+Name_Map name_map_ff7[] = {
+ NSPAIR(_ZN3ff7C1Ev),
+ NSPAIR(_ZN3ff7D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc7;
+extern VTBL_ENTRY _ZTI3cc7[];
+extern VTBL_ENTRY _ZTV3cc7[];
+extern Class_Descriptor cd_dd7;
+extern VTBL_ENTRY _ZTI3dd7[];
+extern VTBL_ENTRY _ZTV3dd7[];
+static Base_Class bases_ff7[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc7, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd7, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff7[];
+extern void _ZN3ff73fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ff73fooEv,_ZTv0_n12_N3ff73fooEv)();
+extern void ABISELECT(_ZThn16_N3ff73fooEv,_ZThn12_N3ff73fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff7[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff7[0]),
+ (VTBL_ENTRY)&_ZN3ff73fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ff7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff73fooEv,_ZTv0_n12_N3ff73fooEv),
+};
+extern VTBL_ENTRY _ZTV3ff7[];
+static VTT_ENTRY vtt_ff7[] = {
+ {&(_ZTV3ff7[3]), 3,8},
+ {&(_ZTV3ff7[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ff7[];
+extern VTBL_ENTRY _ZTV3ff7[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff7[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff73fooEv,_ZTv0_n12_N3ff73fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ff73fooEv,_ZThn12_N3ff73fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff7 = { "ff7", // class name
+ bases_ff7, 2,
+ &(vtc_ff7[0]), // expected_vtbl_contents
+ &(vtt_ff7[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff7),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff7),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ff7),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg7 : ee7 , ff7 {
+ int g;
+ gg7(const ABISELECT(__tsi64,int) *const *); // _ZN3gg7C2Ev
+ virtual void foo(); // _ZN3gg73fooEv
+ ~gg7(); // tgen
+ gg7(); // tgen
+};
+//SIG(1 gg7) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg7 ::gg7(const ABISELECT(__tsi64,int) *const *){}
+void gg7 ::foo(){vfunc_called(this, "_ZN3gg73fooEv");}
+gg7 ::~gg7(){ note_dtor("gg7", this);} // tgen
+gg7 ::gg7(){ note_ctor("gg7", this);} // tgen
+
+static void Test_gg7()
+{
+ extern Class_Descriptor cd_gg7;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg7, buf);
+ gg7 *dp, &lv = *(dp=new (buf) gg7());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg7)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg7)");
+ check_base_class_offset(lv, (aa7*)(ee7*), ABISELECT(40,24), "gg7");
+ check_base_class_offset(lv, (bb7*)(ee7*), ABISELECT(56,32), "gg7");
+ check_base_class_offset(lv, (ee7*), 0, "gg7");
+ check_base_class_offset(lv, (cc7*)(ff7*), ABISELECT(72,40), "gg7");
+ check_base_class_offset(lv, (dd7*)(ff7*), ABISELECT(16,8), "gg7");
+ check_base_class_offset(lv, (ff7*), ABISELECT(16,8), "gg7");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg7.g");
+ test_class_info(&lv, &cd_gg7);
+ dp->~gg7();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg7(Test_gg7, "gg7", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN3gg7C1Ev();
+extern void _ZN3gg7D1Ev();
+Name_Map name_map_gg7[] = {
+ NSPAIR(_ZN3gg7C1Ev),
+ NSPAIR(_ZN3gg7D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa7;
+extern VTBL_ENTRY _ZTI3aa7[];
+extern VTBL_ENTRY _ZTV3aa7[];
+extern Class_Descriptor cd_bb7;
+extern VTBL_ENTRY _ZTI3bb7[];
+extern VTBL_ENTRY _ZTV3bb7[];
+extern Class_Descriptor cd_ee7;
+extern VTBL_ENTRY _ZTI3ee7[];
+extern VTBL_ENTRY _ZTV3ee7[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee7[];
+extern Class_Descriptor cd_cc7;
+extern VTBL_ENTRY _ZTI3cc7[];
+extern VTBL_ENTRY _ZTV3cc7[];
+extern Class_Descriptor cd_dd7;
+extern VTBL_ENTRY _ZTI3dd7[];
+extern VTBL_ENTRY _ZTV3dd7[];
+extern Class_Descriptor cd_ff7;
+extern VTBL_ENTRY _ZTI3ff7[];
+extern VTBL_ENTRY _ZTV3ff7[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff7[];
+static Base_Class bases_gg7[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa7, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb7, ABISELECT(56,32), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee7, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc7, ABISELECT(72,40), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 10, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd7, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff7, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg7[];
+extern void _ZN3gg73fooEv();
+extern void ABISELECT(_ZThn16_N3gg73fooEv,_ZThn8_N3gg73fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv)();
+extern void ABISELECT(_ZThn40_N3gg73fooEv,_ZThn24_N3gg73fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv)();
+extern void ABISELECT(_ZThn56_N3gg73fooEv,_ZThn32_N3gg73fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv)();
+extern void ABISELECT(_ZThn72_N3gg73fooEv,_ZThn40_N3gg73fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg7[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg7[0]),
+ (VTBL_ENTRY)&_ZN3gg73fooEv,
+ ABISELECT(56,32),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3gg7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg73fooEv,_ZThn8_N3gg73fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI3gg7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI3gg7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI3gg7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg7[];
+extern void _ZN3ee73fooEv();
+static VTBL_ENTRY _tg__ZTV3ee7__3gg7[] = {
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee7[0]),
+ (VTBL_ENTRY)&_ZN3ee73fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv)();
+extern void ABISELECT(_ZThn40_N3ee73fooEv,_ZThn24_N3ee73fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa7__3ee7__3gg7[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI3ee7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv)();
+extern void ABISELECT(_ZThn56_N3ee73fooEv,_ZThn32_N3ee73fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3bb7__3ee7__3gg7[] = {
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI3ee7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv),
+};
+extern void _ZN3ff73fooEv();
+static VTBL_ENTRY _tg__ZTV3ff7__3gg7[] = {
+ ABISELECT(56,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff7[0]),
+ (VTBL_ENTRY)&_ZN3ff73fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ff73fooEv,_ZTv0_n12_N3ff73fooEv)();
+extern void ABISELECT(_ZThn56_N3ff73fooEv,_ZThn32_N3ff73fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3cc7__3ff7__3gg7[] = {
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI3ff7[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff73fooEv,_ZTv0_n12_N3ff73fooEv),
+};
+static VTT_ENTRY vtt_gg7[] = {
+ {&(_ZTV3gg7[5]), 5,22},
+ {&(_tg__ZTV3ee7__3gg7[4]), 4,5},
+ {&(_tg__ZTV3aa7__3ee7__3gg7[3]), 3,4},
+ {&(_tg__ZTV3bb7__3ee7__3gg7[3]), 3,4},
+ {&(_tg__ZTV3ff7__3gg7[3]), 3,4},
+ {&(_tg__ZTV3cc7__3ff7__3gg7[3]), 3,4},
+ {&(_ZTV3gg7[13]), 13,22},
+ {&(_ZTV3gg7[17]), 17,22},
+ {&(_ZTV3gg7[9]), 9,22},
+ {&(_ZTV3gg7[21]), 21,22},
+};
+extern VTBL_ENTRY _ZTI3gg7[];
+extern VTBL_ENTRY _ZTV3gg7[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg7[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff73fooEv,_ZTv0_n12_N3ff73fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3ff73fooEv,_ZThn32_N3ff73fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee73fooEv,_ZTv0_n12_N3ee73fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3ee73fooEv,_ZThn32_N3ee73fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ee73fooEv,_ZThn24_N3ee73fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg73fooEv,_ZTv0_n12_N3gg73fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N3gg73fooEv,_ZThn40_N3gg73fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg73fooEv,_ZThn32_N3gg73fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3gg73fooEv,_ZThn24_N3gg73fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg7 = { "gg7", // class name
+ bases_gg7, 6,
+ &(vtc_gg7[0]), // expected_vtbl_contents
+ &(vtt_gg7[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI3gg7),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg7),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg7),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names17,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa8 {
+ int a;
+ aa8(); // _ZN3aa8C1Ev
+ virtual void foo(); // _ZN3aa83fooEv
+ ~aa8(); // tgen
+};
+//SIG(-1 aa8) C1{ v1 Fi}
+
+
+ aa8 ::aa8(){ note_ctor("aa8", this);}
+void aa8 ::foo(){vfunc_called(this, "_ZN3aa83fooEv");}
+aa8 ::~aa8(){ note_dtor("aa8", this);} // tgen
+
+static void Test_aa8()
+{
+ extern Class_Descriptor cd_aa8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa8, buf);
+ aa8 *dp, &lv = *(dp=new (buf) aa8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa8)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa8.a");
+ test_class_info(&lv, &cd_aa8);
+ dp->~aa8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa8(Test_aa8, "aa8", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa8C1Ev();
+extern void _ZN3aa8D1Ev();
+Name_Map name_map_aa8[] = {
+ NSPAIR(_ZN3aa8C1Ev),
+ NSPAIR(_ZN3aa8D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa8[];
+extern void _ZN3aa83fooEv();
+static VTBL_ENTRY vtc_aa8[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa8[0]),
+ (VTBL_ENTRY)&_ZN3aa83fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa8[];
+extern VTBL_ENTRY _ZTV3aa8[];
+Class_Descriptor cd_aa8 = { "aa8", // class name
+ 0,0,//no base classes
+ &(vtc_aa8[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa8),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa8),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb8 {
+ int b;
+ bb8(); // _ZN3bb8C1Ev
+ virtual void foo(); // _ZN3bb83fooEv
+ ~bb8(); // tgen
+};
+//SIG(-1 bb8) C1{ v1 Fi}
+
+
+ bb8 ::bb8(){ note_ctor("bb8", this);}
+void bb8 ::foo(){vfunc_called(this, "_ZN3bb83fooEv");}
+bb8 ::~bb8(){ note_dtor("bb8", this);} // tgen
+
+static void Test_bb8()
+{
+ extern Class_Descriptor cd_bb8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb8, buf);
+ bb8 *dp, &lv = *(dp=new (buf) bb8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb8)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb8.b");
+ test_class_info(&lv, &cd_bb8);
+ dp->~bb8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb8(Test_bb8, "bb8", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb8C1Ev();
+extern void _ZN3bb8D1Ev();
+Name_Map name_map_bb8[] = {
+ NSPAIR(_ZN3bb8C1Ev),
+ NSPAIR(_ZN3bb8D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb8[];
+extern void _ZN3bb83fooEv();
+static VTBL_ENTRY vtc_bb8[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb8[0]),
+ (VTBL_ENTRY)&_ZN3bb83fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb8[];
+extern VTBL_ENTRY _ZTV3bb8[];
+Class_Descriptor cd_bb8 = { "bb8", // class name
+ 0,0,//no base classes
+ &(vtc_bb8[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb8),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb8),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc8 {
+ int c;
+ cc8(); // _ZN3cc8C1Ev
+ virtual void foo(); // _ZN3cc83fooEv
+ ~cc8(); // tgen
+};
+//SIG(-1 cc8) C1{ v1 Fi}
+
+
+ cc8 ::cc8(){ note_ctor("cc8", this);}
+void cc8 ::foo(){vfunc_called(this, "_ZN3cc83fooEv");}
+cc8 ::~cc8(){ note_dtor("cc8", this);} // tgen
+
+static void Test_cc8()
+{
+ extern Class_Descriptor cd_cc8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc8, buf);
+ cc8 *dp, &lv = *(dp=new (buf) cc8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc8)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc8.c");
+ test_class_info(&lv, &cd_cc8);
+ dp->~cc8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc8(Test_cc8, "cc8", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc8C1Ev();
+extern void _ZN3cc8D1Ev();
+Name_Map name_map_cc8[] = {
+ NSPAIR(_ZN3cc8C1Ev),
+ NSPAIR(_ZN3cc8D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc8[];
+extern void _ZN3cc83fooEv();
+static VTBL_ENTRY vtc_cc8[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc8[0]),
+ (VTBL_ENTRY)&_ZN3cc83fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc8[];
+extern VTBL_ENTRY _ZTV3cc8[];
+Class_Descriptor cd_cc8 = { "cc8", // class name
+ 0,0,//no base classes
+ &(vtc_cc8[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc8),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc8),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd8 {
+ int d;
+ dd8(); // _ZN3dd8C1Ev
+ virtual void foo(); // _ZN3dd83fooEv
+ ~dd8(); // tgen
+};
+//SIG(-1 dd8) C1{ v1 Fi}
+
+
+ dd8 ::dd8(){ note_ctor("dd8", this);}
+void dd8 ::foo(){vfunc_called(this, "_ZN3dd83fooEv");}
+dd8 ::~dd8(){ note_dtor("dd8", this);} // tgen
+
+static void Test_dd8()
+{
+ extern Class_Descriptor cd_dd8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd8, buf);
+ dd8 *dp, &lv = *(dp=new (buf) dd8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd8)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd8.d");
+ test_class_info(&lv, &cd_dd8);
+ dp->~dd8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd8(Test_dd8, "dd8", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd8C1Ev();
+extern void _ZN3dd8D1Ev();
+Name_Map name_map_dd8[] = {
+ NSPAIR(_ZN3dd8C1Ev),
+ NSPAIR(_ZN3dd8D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd8[];
+extern void _ZN3dd83fooEv();
+static VTBL_ENTRY vtc_dd8[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd8[0]),
+ (VTBL_ENTRY)&_ZN3dd83fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd8[];
+extern VTBL_ENTRY _ZTV3dd8[];
+Class_Descriptor cd_dd8 = { "dd8", // class name
+ 0,0,//no base classes
+ &(vtc_dd8[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd8),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd8),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee8 : aa8 , bb8 {
+ int e;
+ ee8(); // _ZN3ee8C1Ev
+ virtual void foo(); // _ZN3ee83fooEv
+ ~ee8(); // tgen
+};
+//SIG(-1 ee8) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee8 ::ee8(){ note_ctor("ee8", this);}
+void ee8 ::foo(){vfunc_called(this, "_ZN3ee83fooEv");}
+ee8 ::~ee8(){ note_dtor("ee8", this);} // tgen
+
+static void Test_ee8()
+{
+ extern Class_Descriptor cd_ee8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee8, buf);
+ ee8 *dp, &lv = *(dp=new (buf) ee8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee8)");
+ check_base_class_offset(lv, (aa8*), 0, "ee8");
+ check_base_class_offset(lv, (bb8*), ABISELECT(16,8), "ee8");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee8.e");
+ test_class_info(&lv, &cd_ee8);
+ dp->~ee8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee8(Test_ee8, "ee8", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee8C1Ev();
+extern void _ZN3ee8D1Ev();
+Name_Map name_map_ee8[] = {
+ NSPAIR(_ZN3ee8C1Ev),
+ NSPAIR(_ZN3ee8D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa8;
+extern VTBL_ENTRY _ZTI3aa8[];
+extern VTBL_ENTRY _ZTV3aa8[];
+extern Class_Descriptor cd_bb8;
+extern VTBL_ENTRY _ZTI3bb8[];
+extern VTBL_ENTRY _ZTV3bb8[];
+static Base_Class bases_ee8[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa8, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb8, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee8[];
+extern void _ZN3ee83fooEv();
+extern void ABISELECT(_ZThn16_N3ee83fooEv,_ZThn8_N3ee83fooEv)();
+static VTBL_ENTRY vtc_ee8[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee8[0]),
+ (VTBL_ENTRY)&_ZN3ee83fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3ee8[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3ee83fooEv,_ZThn8_N3ee83fooEv),
+};
+extern VTBL_ENTRY _ZTI3ee8[];
+extern VTBL_ENTRY _ZTV3ee8[];
+Class_Descriptor cd_ee8 = { "ee8", // class name
+ bases_ee8, 2,
+ &(vtc_ee8[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee8),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee8),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff8 : cc8 , virtual dd8 {
+ int f;
+ ff8(const ABISELECT(__tsi64,int) *const *); // _ZN3ff8C2Ev
+ virtual void foo(); // _ZN3ff83fooEv
+ ~ff8(); // tgen
+ ff8(); // tgen
+};
+//SIG(-1 ff8) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff8 ::ff8(const ABISELECT(__tsi64,int) *const *){}
+void ff8 ::foo(){vfunc_called(this, "_ZN3ff83fooEv");}
+ff8 ::~ff8(){ note_dtor("ff8", this);} // tgen
+ff8 ::ff8(){ note_ctor("ff8", this);} // tgen
+
+static void Test_ff8()
+{
+ extern Class_Descriptor cd_ff8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff8, buf);
+ ff8 *dp, &lv = *(dp=new (buf) ff8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff8)");
+ check_base_class_offset(lv, (cc8*), 0, "ff8");
+ check_base_class_offset(lv, (dd8*), ABISELECT(16,12), "ff8");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff8.f");
+ test_class_info(&lv, &cd_ff8);
+ dp->~ff8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff8(Test_ff8, "ff8", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff8C1Ev();
+extern void _ZN3ff8D1Ev();
+Name_Map name_map_ff8[] = {
+ NSPAIR(_ZN3ff8C1Ev),
+ NSPAIR(_ZN3ff8D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc8;
+extern VTBL_ENTRY _ZTI3cc8[];
+extern VTBL_ENTRY _ZTV3cc8[];
+extern Class_Descriptor cd_dd8;
+extern VTBL_ENTRY _ZTI3dd8[];
+extern VTBL_ENTRY _ZTV3dd8[];
+static Base_Class bases_ff8[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc8, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd8, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff8[];
+extern void _ZN3ff83fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ff83fooEv,_ZTv0_n12_N3ff83fooEv)();
+extern void ABISELECT(_ZThn16_N3ff83fooEv,_ZThn12_N3ff83fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff8[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff8[0]),
+ (VTBL_ENTRY)&_ZN3ff83fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ff8[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff83fooEv,_ZTv0_n12_N3ff83fooEv),
+};
+extern VTBL_ENTRY _ZTV3ff8[];
+static VTT_ENTRY vtt_ff8[] = {
+ {&(_ZTV3ff8[3]), 3,8},
+ {&(_ZTV3ff8[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ff8[];
+extern VTBL_ENTRY _ZTV3ff8[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff8[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff83fooEv,_ZTv0_n12_N3ff83fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ff83fooEv,_ZThn12_N3ff83fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff8 = { "ff8", // class name
+ bases_ff8, 2,
+ &(vtc_ff8[0]), // expected_vtbl_contents
+ &(vtt_ff8[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff8),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff8),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ff8),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg8 : ee8 , ff8 {
+ int g;
+ gg8(const ABISELECT(__tsi64,int) *const *); // _ZN3gg8C2Ev
+ virtual void foo(); // _ZN3gg83fooEv
+ ~gg8(); // tgen
+ gg8(); // tgen
+};
+//SIG(1 gg8) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg8 ::gg8(const ABISELECT(__tsi64,int) *const *){}
+void gg8 ::foo(){vfunc_called(this, "_ZN3gg83fooEv");}
+gg8 ::~gg8(){ note_dtor("gg8", this);} // tgen
+gg8 ::gg8(){ note_ctor("gg8", this);} // tgen
+
+static void Test_gg8()
+{
+ extern Class_Descriptor cd_gg8;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg8, buf);
+ gg8 *dp, &lv = *(dp=new (buf) gg8());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg8)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg8)");
+ check_base_class_offset(lv, (aa8*)(ee8*), 0, "gg8");
+ check_base_class_offset(lv, (bb8*)(ee8*), ABISELECT(16,8), "gg8");
+ check_base_class_offset(lv, (ee8*), 0, "gg8");
+ check_base_class_offset(lv, (cc8*)(ff8*), ABISELECT(32,20), "gg8");
+ check_base_class_offset(lv, (dd8*)(ff8*), ABISELECT(56,36), "gg8");
+ check_base_class_offset(lv, (ff8*), ABISELECT(32,20), "gg8");
+ check_field_offset(lv, g, ABISELECT(48,32), "gg8.g");
+ test_class_info(&lv, &cd_gg8);
+ dp->~gg8();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg8(Test_gg8, "gg8", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg8C1Ev();
+extern void _ZN3gg8D1Ev();
+Name_Map name_map_gg8[] = {
+ NSPAIR(_ZN3gg8C1Ev),
+ NSPAIR(_ZN3gg8D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa8;
+extern VTBL_ENTRY _ZTI3aa8[];
+extern VTBL_ENTRY _ZTV3aa8[];
+extern Class_Descriptor cd_bb8;
+extern VTBL_ENTRY _ZTI3bb8[];
+extern VTBL_ENTRY _ZTV3bb8[];
+extern Class_Descriptor cd_ee8;
+extern VTBL_ENTRY _ZTI3ee8[];
+extern VTBL_ENTRY _ZTV3ee8[];
+extern Class_Descriptor cd_cc8;
+extern VTBL_ENTRY _ZTI3cc8[];
+extern VTBL_ENTRY _ZTV3cc8[];
+extern Class_Descriptor cd_dd8;
+extern VTBL_ENTRY _ZTI3dd8[];
+extern VTBL_ENTRY _ZTV3dd8[];
+extern Class_Descriptor cd_ff8;
+extern VTBL_ENTRY _ZTI3ff8[];
+extern VTBL_ENTRY _ZTV3ff8[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff8[];
+static Base_Class bases_gg8[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa8, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb8, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee8, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc8, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd8, ABISELECT(56,36), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff8, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg8[];
+extern void _ZN3gg83fooEv();
+extern void ABISELECT(_ZThn16_N3gg83fooEv,_ZThn8_N3gg83fooEv)();
+extern void ABISELECT(_ZThn32_N3gg83fooEv,_ZThn20_N3gg83fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg83fooEv,_ZTv0_n12_N3gg83fooEv)();
+extern void ABISELECT(_ZThn56_N3gg83fooEv,_ZThn36_N3gg83fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg8[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg8[0]),
+ (VTBL_ENTRY)&_ZN3gg83fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3gg8[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg83fooEv,_ZThn8_N3gg83fooEv),
+ ABISELECT(24,16),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI3gg8[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N3gg83fooEv,_ZThn20_N3gg83fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg8[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg83fooEv,_ZTv0_n12_N3gg83fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg8[];
+extern void _ZN3ff83fooEv();
+static VTBL_ENTRY _tg__ZTV3ff8__3gg8[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff8[0]),
+ (VTBL_ENTRY)&_ZN3ff83fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ff83fooEv,_ZTv0_n12_N3ff83fooEv)();
+extern void ABISELECT(_ZThn24_N3ff83fooEv,_ZThn16_N3ff83fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3dd8__3ff8__3gg8[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI3ff8[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff83fooEv,_ZTv0_n12_N3ff83fooEv),
+};
+static VTT_ENTRY vtt_gg8[] = {
+ {&(_ZTV3gg8[3]), 3,15},
+ {&(_tg__ZTV3ff8__3gg8[3]), 3,4},
+ {&(_tg__ZTV3dd8__3ff8__3gg8[3]), 3,4},
+ {&(_ZTV3gg8[10]), 10,15},
+ {&(_ZTV3gg8[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI3gg8[];
+extern VTBL_ENTRY _ZTV3gg8[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg8[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff83fooEv,_ZTv0_n12_N3ff83fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N3ff83fooEv,_ZThn16_N3ff83fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg83fooEv,_ZTv0_n12_N3gg83fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg83fooEv,_ZThn36_N3gg83fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg8 = { "gg8", // class name
+ bases_gg8, 6,
+ &(vtc_gg8[0]), // expected_vtbl_contents
+ &(vtt_gg8[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg8),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg8),15, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg8),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa9 {
+ int a;
+ aa9(); // _ZN3aa9C1Ev
+ virtual void foo(); // _ZN3aa93fooEv
+ ~aa9(); // tgen
+};
+//SIG(-1 aa9) C1{ v1 Fi}
+
+
+ aa9 ::aa9(){ note_ctor("aa9", this);}
+void aa9 ::foo(){vfunc_called(this, "_ZN3aa93fooEv");}
+aa9 ::~aa9(){ note_dtor("aa9", this);} // tgen
+
+static void Test_aa9()
+{
+ extern Class_Descriptor cd_aa9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa9, buf);
+ aa9 *dp, &lv = *(dp=new (buf) aa9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa9)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa9.a");
+ test_class_info(&lv, &cd_aa9);
+ dp->~aa9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa9(Test_aa9, "aa9", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa9C1Ev();
+extern void _ZN3aa9D1Ev();
+Name_Map name_map_aa9[] = {
+ NSPAIR(_ZN3aa9C1Ev),
+ NSPAIR(_ZN3aa9D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa9[];
+extern void _ZN3aa93fooEv();
+static VTBL_ENTRY vtc_aa9[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa9[0]),
+ (VTBL_ENTRY)&_ZN3aa93fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa9[];
+extern VTBL_ENTRY _ZTV3aa9[];
+Class_Descriptor cd_aa9 = { "aa9", // class name
+ 0,0,//no base classes
+ &(vtc_aa9[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa9),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa9),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb9 {
+ int b;
+ bb9(); // _ZN3bb9C1Ev
+ virtual void foo(); // _ZN3bb93fooEv
+ ~bb9(); // tgen
+};
+//SIG(-1 bb9) C1{ v1 Fi}
+
+
+ bb9 ::bb9(){ note_ctor("bb9", this);}
+void bb9 ::foo(){vfunc_called(this, "_ZN3bb93fooEv");}
+bb9 ::~bb9(){ note_dtor("bb9", this);} // tgen
+
+static void Test_bb9()
+{
+ extern Class_Descriptor cd_bb9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb9, buf);
+ bb9 *dp, &lv = *(dp=new (buf) bb9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb9)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb9.b");
+ test_class_info(&lv, &cd_bb9);
+ dp->~bb9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb9(Test_bb9, "bb9", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3bb9C1Ev();
+extern void _ZN3bb9D1Ev();
+Name_Map name_map_bb9[] = {
+ NSPAIR(_ZN3bb9C1Ev),
+ NSPAIR(_ZN3bb9D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3bb9[];
+extern void _ZN3bb93fooEv();
+static VTBL_ENTRY vtc_bb9[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3bb9[0]),
+ (VTBL_ENTRY)&_ZN3bb93fooEv,
+};
+extern VTBL_ENTRY _ZTI3bb9[];
+extern VTBL_ENTRY _ZTV3bb9[];
+Class_Descriptor cd_bb9 = { "bb9", // class name
+ 0,0,//no base classes
+ &(vtc_bb9[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3bb9),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3bb9),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc9 {
+ int c;
+ cc9(); // _ZN3cc9C1Ev
+ virtual void foo(); // _ZN3cc93fooEv
+ ~cc9(); // tgen
+};
+//SIG(-1 cc9) C1{ v1 Fi}
+
+
+ cc9 ::cc9(){ note_ctor("cc9", this);}
+void cc9 ::foo(){vfunc_called(this, "_ZN3cc93fooEv");}
+cc9 ::~cc9(){ note_dtor("cc9", this);} // tgen
+
+static void Test_cc9()
+{
+ extern Class_Descriptor cd_cc9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc9, buf);
+ cc9 *dp, &lv = *(dp=new (buf) cc9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc9)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc9.c");
+ test_class_info(&lv, &cd_cc9);
+ dp->~cc9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc9(Test_cc9, "cc9", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3cc9C1Ev();
+extern void _ZN3cc9D1Ev();
+Name_Map name_map_cc9[] = {
+ NSPAIR(_ZN3cc9C1Ev),
+ NSPAIR(_ZN3cc9D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3cc9[];
+extern void _ZN3cc93fooEv();
+static VTBL_ENTRY vtc_cc9[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3cc9[0]),
+ (VTBL_ENTRY)&_ZN3cc93fooEv,
+};
+extern VTBL_ENTRY _ZTI3cc9[];
+extern VTBL_ENTRY _ZTV3cc9[];
+Class_Descriptor cd_cc9 = { "cc9", // class name
+ 0,0,//no base classes
+ &(vtc_cc9[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3cc9),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3cc9),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd9 {
+ int d;
+ dd9(); // _ZN3dd9C1Ev
+ virtual void foo(); // _ZN3dd93fooEv
+ ~dd9(); // tgen
+};
+//SIG(-1 dd9) C1{ v1 Fi}
+
+
+ dd9 ::dd9(){ note_ctor("dd9", this);}
+void dd9 ::foo(){vfunc_called(this, "_ZN3dd93fooEv");}
+dd9 ::~dd9(){ note_dtor("dd9", this);} // tgen
+
+static void Test_dd9()
+{
+ extern Class_Descriptor cd_dd9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd9, buf);
+ dd9 *dp, &lv = *(dp=new (buf) dd9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd9)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd9.d");
+ test_class_info(&lv, &cd_dd9);
+ dp->~dd9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd9(Test_dd9, "dd9", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3dd9C1Ev();
+extern void _ZN3dd9D1Ev();
+Name_Map name_map_dd9[] = {
+ NSPAIR(_ZN3dd9C1Ev),
+ NSPAIR(_ZN3dd9D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3dd9[];
+extern void _ZN3dd93fooEv();
+static VTBL_ENTRY vtc_dd9[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3dd9[0]),
+ (VTBL_ENTRY)&_ZN3dd93fooEv,
+};
+extern VTBL_ENTRY _ZTI3dd9[];
+extern VTBL_ENTRY _ZTV3dd9[];
+Class_Descriptor cd_dd9 = { "dd9", // class name
+ 0,0,//no base classes
+ &(vtc_dd9[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3dd9),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3dd9),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee9 : virtual aa9 , bb9 {
+ int e;
+ ee9(const ABISELECT(__tsi64,int) *const *); // _ZN3ee9C2Ev
+ virtual void foo(); // _ZN3ee93fooEv
+ ~ee9(); // tgen
+ ee9(); // tgen
+};
+//SIG(-1 ee9) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee9 ::ee9(const ABISELECT(__tsi64,int) *const *){}
+void ee9 ::foo(){vfunc_called(this, "_ZN3ee93fooEv");}
+ee9 ::~ee9(){ note_dtor("ee9", this);} // tgen
+ee9 ::ee9(){ note_ctor("ee9", this);} // tgen
+
+static void Test_ee9()
+{
+ extern Class_Descriptor cd_ee9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee9, buf);
+ ee9 *dp, &lv = *(dp=new (buf) ee9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee9)");
+ check_base_class_offset(lv, (aa9*), ABISELECT(16,12), "ee9");
+ check_base_class_offset(lv, (bb9*), 0, "ee9");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee9.e");
+ test_class_info(&lv, &cd_ee9);
+ dp->~ee9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee9(Test_ee9, "ee9", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ee9C1Ev();
+extern void _ZN3ee9D1Ev();
+Name_Map name_map_ee9[] = {
+ NSPAIR(_ZN3ee9C1Ev),
+ NSPAIR(_ZN3ee9D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa9;
+extern VTBL_ENTRY _ZTI3aa9[];
+extern VTBL_ENTRY _ZTV3aa9[];
+extern Class_Descriptor cd_bb9;
+extern VTBL_ENTRY _ZTI3bb9[];
+extern VTBL_ENTRY _ZTV3bb9[];
+static Base_Class bases_ee9[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa9, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb9, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3ee9[];
+extern void _ZN3ee93fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ee93fooEv,_ZTv0_n12_N3ee93fooEv)();
+extern void ABISELECT(_ZThn16_N3ee93fooEv,_ZThn12_N3ee93fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee9[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee9[0]),
+ (VTBL_ENTRY)&_ZN3ee93fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ee9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee93fooEv,_ZTv0_n12_N3ee93fooEv),
+};
+extern VTBL_ENTRY _ZTV3ee9[];
+static VTT_ENTRY vtt_ee9[] = {
+ {&(_ZTV3ee9[3]), 3,8},
+ {&(_ZTV3ee9[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ee9[];
+extern VTBL_ENTRY _ZTV3ee9[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee9[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee93fooEv,_ZTv0_n12_N3ee93fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ee93fooEv,_ZThn12_N3ee93fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee9 = { "ee9", // class name
+ bases_ee9, 2,
+ &(vtc_ee9[0]), // expected_vtbl_contents
+ &(vtt_ee9[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ee9),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ee9),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ee9),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff9 : cc9 , virtual dd9 {
+ int f;
+ ff9(const ABISELECT(__tsi64,int) *const *); // _ZN3ff9C2Ev
+ virtual void foo(); // _ZN3ff93fooEv
+ ~ff9(); // tgen
+ ff9(); // tgen
+};
+//SIG(-1 ff9) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff9 ::ff9(const ABISELECT(__tsi64,int) *const *){}
+void ff9 ::foo(){vfunc_called(this, "_ZN3ff93fooEv");}
+ff9 ::~ff9(){ note_dtor("ff9", this);} // tgen
+ff9 ::ff9(){ note_ctor("ff9", this);} // tgen
+
+static void Test_ff9()
+{
+ extern Class_Descriptor cd_ff9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff9, buf);
+ ff9 *dp, &lv = *(dp=new (buf) ff9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff9)");
+ check_base_class_offset(lv, (cc9*), 0, "ff9");
+ check_base_class_offset(lv, (dd9*), ABISELECT(16,12), "ff9");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff9.f");
+ test_class_info(&lv, &cd_ff9);
+ dp->~ff9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff9(Test_ff9, "ff9", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN3ff9C1Ev();
+extern void _ZN3ff9D1Ev();
+Name_Map name_map_ff9[] = {
+ NSPAIR(_ZN3ff9C1Ev),
+ NSPAIR(_ZN3ff9D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc9;
+extern VTBL_ENTRY _ZTI3cc9[];
+extern VTBL_ENTRY _ZTV3cc9[];
+extern Class_Descriptor cd_dd9;
+extern VTBL_ENTRY _ZTI3dd9[];
+extern VTBL_ENTRY _ZTV3dd9[];
+static Base_Class bases_ff9[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc9, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd9, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3ff9[];
+extern void _ZN3ff93fooEv();
+extern void ABISELECT(_ZTv0_n24_N3ff93fooEv,_ZTv0_n12_N3ff93fooEv)();
+extern void ABISELECT(_ZThn16_N3ff93fooEv,_ZThn12_N3ff93fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff9[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff9[0]),
+ (VTBL_ENTRY)&_ZN3ff93fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3ff9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff93fooEv,_ZTv0_n12_N3ff93fooEv),
+};
+extern VTBL_ENTRY _ZTV3ff9[];
+static VTT_ENTRY vtt_ff9[] = {
+ {&(_ZTV3ff9[3]), 3,8},
+ {&(_ZTV3ff9[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3ff9[];
+extern VTBL_ENTRY _ZTV3ff9[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff9[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff93fooEv,_ZTv0_n12_N3ff93fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3ff93fooEv,_ZThn12_N3ff93fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff9 = { "ff9", // class name
+ bases_ff9, 2,
+ &(vtc_ff9[0]), // expected_vtbl_contents
+ &(vtt_ff9[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI3ff9),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3ff9),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3ff9),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg9 : ee9 , ff9 {
+ int g;
+ gg9(const ABISELECT(__tsi64,int) *const *); // _ZN3gg9C2Ev
+ virtual void foo(); // _ZN3gg93fooEv
+ ~gg9(); // tgen
+ gg9(); // tgen
+};
+//SIG(1 gg9) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg9 ::gg9(const ABISELECT(__tsi64,int) *const *){}
+void gg9 ::foo(){vfunc_called(this, "_ZN3gg93fooEv");}
+gg9 ::~gg9(){ note_dtor("gg9", this);} // tgen
+gg9 ::gg9(){ note_ctor("gg9", this);} // tgen
+
+static void Test_gg9()
+{
+ extern Class_Descriptor cd_gg9;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg9, buf);
+ gg9 *dp, &lv = *(dp=new (buf) gg9());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg9)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg9)");
+ check_base_class_offset(lv, (aa9*)(ee9*), ABISELECT(40,28), "gg9");
+ check_base_class_offset(lv, (bb9*)(ee9*), 0, "gg9");
+ check_base_class_offset(lv, (ee9*), 0, "gg9");
+ check_base_class_offset(lv, (cc9*)(ff9*), ABISELECT(16,12), "gg9");
+ check_base_class_offset(lv, (dd9*)(ff9*), ABISELECT(56,36), "gg9");
+ check_base_class_offset(lv, (ff9*), ABISELECT(16,12), "gg9");
+ check_field_offset(lv, g, ABISELECT(32,24), "gg9.g");
+ test_class_info(&lv, &cd_gg9);
+ dp->~gg9();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg9(Test_gg9, "gg9", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN3gg9C1Ev();
+extern void _ZN3gg9D1Ev();
+Name_Map name_map_gg9[] = {
+ NSPAIR(_ZN3gg9C1Ev),
+ NSPAIR(_ZN3gg9D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa9;
+extern VTBL_ENTRY _ZTI3aa9[];
+extern VTBL_ENTRY _ZTV3aa9[];
+extern Class_Descriptor cd_bb9;
+extern VTBL_ENTRY _ZTI3bb9[];
+extern VTBL_ENTRY _ZTV3bb9[];
+extern Class_Descriptor cd_ee9;
+extern VTBL_ENTRY _ZTI3ee9[];
+extern VTBL_ENTRY _ZTV3ee9[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ee9[];
+extern Class_Descriptor cd_cc9;
+extern VTBL_ENTRY _ZTI3cc9[];
+extern VTBL_ENTRY _ZTV3cc9[];
+extern Class_Descriptor cd_dd9;
+extern VTBL_ENTRY _ZTI3dd9[];
+extern VTBL_ENTRY _ZTV3dd9[];
+extern Class_Descriptor cd_ff9;
+extern VTBL_ENTRY _ZTI3ff9[];
+extern VTBL_ENTRY _ZTV3ff9[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3ff9[];
+static Base_Class bases_gg9[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa9, ABISELECT(40,28), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb9, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee9, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc9, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd9, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff9, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI3gg9[];
+extern void _ZN3gg93fooEv();
+extern void ABISELECT(_ZThn16_N3gg93fooEv,_ZThn12_N3gg93fooEv)();
+extern void ABISELECT(_ZTv0_n24_N3gg93fooEv,_ZTv0_n12_N3gg93fooEv)();
+extern void ABISELECT(_ZThn40_N3gg93fooEv,_ZThn28_N3gg93fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3gg93fooEv,_ZTv0_n12_N3gg93fooEv)();
+extern void ABISELECT(_ZThn56_N3gg93fooEv,_ZThn36_N3gg93fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg9[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3gg9[0]),
+ (VTBL_ENTRY)&_ZN3gg93fooEv,
+ ABISELECT(40,24),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI3gg9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N3gg93fooEv,_ZThn12_N3gg93fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI3gg9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg93fooEv,_ZTv0_n12_N3gg93fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI3gg9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3gg93fooEv,_ZTv0_n12_N3gg93fooEv),
+};
+extern VTBL_ENTRY _ZTV3gg9[];
+extern void _ZN3ee93fooEv();
+static VTBL_ENTRY _tg__ZTV3ee9__3gg9[] = {
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ee9[0]),
+ (VTBL_ENTRY)&_ZN3ee93fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ee93fooEv,_ZTv0_n12_N3ee93fooEv)();
+extern void ABISELECT(_ZThn40_N3ee93fooEv,_ZThn28_N3ee93fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa9__3ee9__3gg9[] = {
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI3ee9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ee93fooEv,_ZTv0_n12_N3ee93fooEv),
+};
+extern void _ZN3ff93fooEv();
+static VTBL_ENTRY _tg__ZTV3ff9__3gg9[] = {
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3ff9[0]),
+ (VTBL_ENTRY)&_ZN3ff93fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3ff93fooEv,_ZTv0_n12_N3ff93fooEv)();
+extern void ABISELECT(_ZThn40_N3ff93fooEv,_ZThn24_N3ff93fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3dd9__3ff9__3gg9[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI3ff9[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3ff93fooEv,_ZTv0_n12_N3ff93fooEv),
+};
+static VTT_ENTRY vtt_gg9[] = {
+ {&(_ZTV3gg9[4]), 4,17},
+ {&(_tg__ZTV3ee9__3gg9[3]), 3,4},
+ {&(_tg__ZTV3aa9__3ee9__3gg9[3]), 3,4},
+ {&(_tg__ZTV3ff9__3gg9[3]), 3,4},
+ {&(_tg__ZTV3dd9__3ff9__3gg9[3]), 3,4},
+ {&(_ZTV3gg9[12]), 12,17},
+ {&(_ZTV3gg9[8]), 8,17},
+ {&(_ZTV3gg9[16]), 16,17},
+};
+extern VTBL_ENTRY _ZTI3gg9[];
+extern VTBL_ENTRY _ZTV3gg9[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3gg9[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ff93fooEv,_ZTv0_n12_N3ff93fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ff93fooEv,_ZThn24_N3ff93fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3ee93fooEv,_ZTv0_n12_N3ee93fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3ee93fooEv,_ZThn28_N3ee93fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3gg93fooEv,_ZTv0_n12_N3gg93fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N3gg93fooEv,_ZThn36_N3gg93fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N3gg93fooEv,_ZThn28_N3gg93fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg9 = { "gg9", // class name
+ bases_gg9, 6,
+ &(vtc_gg9[0]), // expected_vtbl_contents
+ &(vtt_gg9[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI3gg9),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV3gg9),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3gg9),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa10 {
+ int a;
+ aa10(); // _ZN4aa10C1Ev
+ virtual void foo(); // _ZN4aa103fooEv
+ ~aa10(); // tgen
+};
+//SIG(-1 aa10) C1{ v1 Fi}
+
+
+ aa10 ::aa10(){ note_ctor("aa10", this);}
+void aa10 ::foo(){vfunc_called(this, "_ZN4aa103fooEv");}
+aa10 ::~aa10(){ note_dtor("aa10", this);} // tgen
+
+static void Test_aa10()
+{
+ extern Class_Descriptor cd_aa10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa10, buf);
+ aa10 *dp, &lv = *(dp=new (buf) aa10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa10)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa10.a");
+ test_class_info(&lv, &cd_aa10);
+ dp->~aa10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa10(Test_aa10, "aa10", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa10C1Ev();
+extern void _ZN4aa10D1Ev();
+Name_Map name_map_aa10[] = {
+ NSPAIR(_ZN4aa10C1Ev),
+ NSPAIR(_ZN4aa10D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa10[];
+extern void _ZN4aa103fooEv();
+static VTBL_ENTRY vtc_aa10[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa10[0]),
+ (VTBL_ENTRY)&_ZN4aa103fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa10[];
+extern VTBL_ENTRY _ZTV4aa10[];
+Class_Descriptor cd_aa10 = { "aa10", // class name
+ 0,0,//no base classes
+ &(vtc_aa10[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa10),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa10),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb10 {
+ int b;
+ bb10(); // _ZN4bb10C1Ev
+ virtual void foo(); // _ZN4bb103fooEv
+ ~bb10(); // tgen
+};
+//SIG(-1 bb10) C1{ v1 Fi}
+
+
+ bb10 ::bb10(){ note_ctor("bb10", this);}
+void bb10 ::foo(){vfunc_called(this, "_ZN4bb103fooEv");}
+bb10 ::~bb10(){ note_dtor("bb10", this);} // tgen
+
+static void Test_bb10()
+{
+ extern Class_Descriptor cd_bb10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb10, buf);
+ bb10 *dp, &lv = *(dp=new (buf) bb10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb10)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb10.b");
+ test_class_info(&lv, &cd_bb10);
+ dp->~bb10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb10(Test_bb10, "bb10", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb10C1Ev();
+extern void _ZN4bb10D1Ev();
+Name_Map name_map_bb10[] = {
+ NSPAIR(_ZN4bb10C1Ev),
+ NSPAIR(_ZN4bb10D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb10[];
+extern void _ZN4bb103fooEv();
+static VTBL_ENTRY vtc_bb10[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb10[0]),
+ (VTBL_ENTRY)&_ZN4bb103fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb10[];
+extern VTBL_ENTRY _ZTV4bb10[];
+Class_Descriptor cd_bb10 = { "bb10", // class name
+ 0,0,//no base classes
+ &(vtc_bb10[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb10),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb10),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc10 {
+ int c;
+ cc10(); // _ZN4cc10C1Ev
+ virtual void foo(); // _ZN4cc103fooEv
+ ~cc10(); // tgen
+};
+//SIG(-1 cc10) C1{ v1 Fi}
+
+
+ cc10 ::cc10(){ note_ctor("cc10", this);}
+void cc10 ::foo(){vfunc_called(this, "_ZN4cc103fooEv");}
+cc10 ::~cc10(){ note_dtor("cc10", this);} // tgen
+
+static void Test_cc10()
+{
+ extern Class_Descriptor cd_cc10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc10, buf);
+ cc10 *dp, &lv = *(dp=new (buf) cc10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc10)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc10.c");
+ test_class_info(&lv, &cd_cc10);
+ dp->~cc10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc10(Test_cc10, "cc10", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc10C1Ev();
+extern void _ZN4cc10D1Ev();
+Name_Map name_map_cc10[] = {
+ NSPAIR(_ZN4cc10C1Ev),
+ NSPAIR(_ZN4cc10D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc10[];
+extern void _ZN4cc103fooEv();
+static VTBL_ENTRY vtc_cc10[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc10[0]),
+ (VTBL_ENTRY)&_ZN4cc103fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc10[];
+extern VTBL_ENTRY _ZTV4cc10[];
+Class_Descriptor cd_cc10 = { "cc10", // class name
+ 0,0,//no base classes
+ &(vtc_cc10[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc10),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc10),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd10 {
+ int d;
+ dd10(); // _ZN4dd10C1Ev
+ virtual void foo(); // _ZN4dd103fooEv
+ ~dd10(); // tgen
+};
+//SIG(-1 dd10) C1{ v1 Fi}
+
+
+ dd10 ::dd10(){ note_ctor("dd10", this);}
+void dd10 ::foo(){vfunc_called(this, "_ZN4dd103fooEv");}
+dd10 ::~dd10(){ note_dtor("dd10", this);} // tgen
+
+static void Test_dd10()
+{
+ extern Class_Descriptor cd_dd10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd10, buf);
+ dd10 *dp, &lv = *(dp=new (buf) dd10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd10)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd10.d");
+ test_class_info(&lv, &cd_dd10);
+ dp->~dd10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd10(Test_dd10, "dd10", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd10C1Ev();
+extern void _ZN4dd10D1Ev();
+Name_Map name_map_dd10[] = {
+ NSPAIR(_ZN4dd10C1Ev),
+ NSPAIR(_ZN4dd10D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd10[];
+extern void _ZN4dd103fooEv();
+static VTBL_ENTRY vtc_dd10[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd10[0]),
+ (VTBL_ENTRY)&_ZN4dd103fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd10[];
+extern VTBL_ENTRY _ZTV4dd10[];
+Class_Descriptor cd_dd10 = { "dd10", // class name
+ 0,0,//no base classes
+ &(vtc_dd10[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd10),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd10),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10 : aa10 , virtual bb10 {
+ int e;
+ ee10(const ABISELECT(__tsi64,int) *const *); // _ZN4ee10C2Ev
+ virtual void foo(); // _ZN4ee103fooEv
+ ~ee10(); // tgen
+ ee10(); // tgen
+};
+//SIG(-1 ee10) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee10 ::ee10(const ABISELECT(__tsi64,int) *const *){}
+void ee10 ::foo(){vfunc_called(this, "_ZN4ee103fooEv");}
+ee10 ::~ee10(){ note_dtor("ee10", this);} // tgen
+ee10 ::ee10(){ note_ctor("ee10", this);} // tgen
+
+static void Test_ee10()
+{
+ extern Class_Descriptor cd_ee10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee10, buf);
+ ee10 *dp, &lv = *(dp=new (buf) ee10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10)");
+ check_base_class_offset(lv, (aa10*), 0, "ee10");
+ check_base_class_offset(lv, (bb10*), ABISELECT(16,12), "ee10");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee10.e");
+ test_class_info(&lv, &cd_ee10);
+ dp->~ee10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10(Test_ee10, "ee10", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee10C1Ev();
+extern void _ZN4ee10D1Ev();
+Name_Map name_map_ee10[] = {
+ NSPAIR(_ZN4ee10C1Ev),
+ NSPAIR(_ZN4ee10D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa10;
+extern VTBL_ENTRY _ZTI4aa10[];
+extern VTBL_ENTRY _ZTV4aa10[];
+extern Class_Descriptor cd_bb10;
+extern VTBL_ENTRY _ZTI4bb10[];
+extern VTBL_ENTRY _ZTV4bb10[];
+static Base_Class bases_ee10[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa10, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb10, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee10[];
+extern void _ZN4ee103fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee103fooEv,_ZTv0_n12_N4ee103fooEv)();
+extern void ABISELECT(_ZThn16_N4ee103fooEv,_ZThn12_N4ee103fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee10[0]),
+ (VTBL_ENTRY)&_ZN4ee103fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee103fooEv,_ZTv0_n12_N4ee103fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee10[];
+static VTT_ENTRY vtt_ee10[] = {
+ {&(_ZTV4ee10[3]), 3,8},
+ {&(_ZTV4ee10[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee10[];
+extern VTBL_ENTRY _ZTV4ee10[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee10[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee103fooEv,_ZTv0_n12_N4ee103fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee103fooEv,_ZThn12_N4ee103fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10 = { "ee10", // class name
+ bases_ee10, 2,
+ &(vtc_ee10[0]), // expected_vtbl_contents
+ &(vtt_ee10[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee10),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee10),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee10),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff10 : cc10 , virtual dd10 {
+ int f;
+ ff10(const ABISELECT(__tsi64,int) *const *); // _ZN4ff10C2Ev
+ virtual void foo(); // _ZN4ff103fooEv
+ ~ff10(); // tgen
+ ff10(); // tgen
+};
+//SIG(-1 ff10) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff10 ::ff10(const ABISELECT(__tsi64,int) *const *){}
+void ff10 ::foo(){vfunc_called(this, "_ZN4ff103fooEv");}
+ff10 ::~ff10(){ note_dtor("ff10", this);} // tgen
+ff10 ::ff10(){ note_ctor("ff10", this);} // tgen
+
+static void Test_ff10()
+{
+ extern Class_Descriptor cd_ff10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff10, buf);
+ ff10 *dp, &lv = *(dp=new (buf) ff10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff10)");
+ check_base_class_offset(lv, (cc10*), 0, "ff10");
+ check_base_class_offset(lv, (dd10*), ABISELECT(16,12), "ff10");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff10.f");
+ test_class_info(&lv, &cd_ff10);
+ dp->~ff10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff10(Test_ff10, "ff10", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff10C1Ev();
+extern void _ZN4ff10D1Ev();
+Name_Map name_map_ff10[] = {
+ NSPAIR(_ZN4ff10C1Ev),
+ NSPAIR(_ZN4ff10D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc10;
+extern VTBL_ENTRY _ZTI4cc10[];
+extern VTBL_ENTRY _ZTV4cc10[];
+extern Class_Descriptor cd_dd10;
+extern VTBL_ENTRY _ZTI4dd10[];
+extern VTBL_ENTRY _ZTV4dd10[];
+static Base_Class bases_ff10[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc10, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd10, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff10[];
+extern void _ZN4ff103fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff103fooEv,_ZTv0_n12_N4ff103fooEv)();
+extern void ABISELECT(_ZThn16_N4ff103fooEv,_ZThn12_N4ff103fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff10[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff10[0]),
+ (VTBL_ENTRY)&_ZN4ff103fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff103fooEv,_ZTv0_n12_N4ff103fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff10[];
+static VTT_ENTRY vtt_ff10[] = {
+ {&(_ZTV4ff10[3]), 3,8},
+ {&(_ZTV4ff10[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff10[];
+extern VTBL_ENTRY _ZTV4ff10[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff10[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff103fooEv,_ZTv0_n12_N4ff103fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff103fooEv,_ZThn12_N4ff103fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff10 = { "ff10", // class name
+ bases_ff10, 2,
+ &(vtc_ff10[0]), // expected_vtbl_contents
+ &(vtt_ff10[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff10),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff10),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff10),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg10 : ee10 , ff10 {
+ int g;
+ gg10(const ABISELECT(__tsi64,int) *const *); // _ZN4gg10C2Ev
+ virtual void foo(); // _ZN4gg103fooEv
+ ~gg10(); // tgen
+ gg10(); // tgen
+};
+//SIG(1 gg10) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg10 ::gg10(const ABISELECT(__tsi64,int) *const *){}
+void gg10 ::foo(){vfunc_called(this, "_ZN4gg103fooEv");}
+gg10 ::~gg10(){ note_dtor("gg10", this);} // tgen
+gg10 ::gg10(){ note_ctor("gg10", this);} // tgen
+
+static void Test_gg10()
+{
+ extern Class_Descriptor cd_gg10;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg10, buf);
+ gg10 *dp, &lv = *(dp=new (buf) gg10());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg10)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg10)");
+ check_base_class_offset(lv, (aa10*)(ee10*), 0, "gg10");
+ check_base_class_offset(lv, (bb10*)(ee10*), ABISELECT(40,28), "gg10");
+ check_base_class_offset(lv, (ee10*), 0, "gg10");
+ check_base_class_offset(lv, (cc10*)(ff10*), ABISELECT(16,12), "gg10");
+ check_base_class_offset(lv, (dd10*)(ff10*), ABISELECT(56,36), "gg10");
+ check_base_class_offset(lv, (ff10*), ABISELECT(16,12), "gg10");
+ check_field_offset(lv, g, ABISELECT(32,24), "gg10.g");
+ test_class_info(&lv, &cd_gg10);
+ dp->~gg10();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg10(Test_gg10, "gg10", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg10C1Ev();
+extern void _ZN4gg10D1Ev();
+Name_Map name_map_gg10[] = {
+ NSPAIR(_ZN4gg10C1Ev),
+ NSPAIR(_ZN4gg10D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa10;
+extern VTBL_ENTRY _ZTI4aa10[];
+extern VTBL_ENTRY _ZTV4aa10[];
+extern Class_Descriptor cd_bb10;
+extern VTBL_ENTRY _ZTI4bb10[];
+extern VTBL_ENTRY _ZTV4bb10[];
+extern Class_Descriptor cd_ee10;
+extern VTBL_ENTRY _ZTI4ee10[];
+extern VTBL_ENTRY _ZTV4ee10[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee10[];
+extern Class_Descriptor cd_cc10;
+extern VTBL_ENTRY _ZTI4cc10[];
+extern VTBL_ENTRY _ZTV4cc10[];
+extern Class_Descriptor cd_dd10;
+extern VTBL_ENTRY _ZTI4dd10[];
+extern VTBL_ENTRY _ZTV4dd10[];
+extern Class_Descriptor cd_ff10;
+extern VTBL_ENTRY _ZTI4ff10[];
+extern VTBL_ENTRY _ZTV4ff10[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff10[];
+static Base_Class bases_gg10[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa10, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb10, ABISELECT(40,28), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee10, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc10, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd10, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff10, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg10[];
+extern void _ZN4gg103fooEv();
+extern void ABISELECT(_ZThn16_N4gg103fooEv,_ZThn12_N4gg103fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg103fooEv,_ZTv0_n12_N4gg103fooEv)();
+extern void ABISELECT(_ZThn40_N4gg103fooEv,_ZThn28_N4gg103fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg103fooEv,_ZTv0_n12_N4gg103fooEv)();
+extern void ABISELECT(_ZThn56_N4gg103fooEv,_ZThn36_N4gg103fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg10[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg10[0]),
+ (VTBL_ENTRY)&_ZN4gg103fooEv,
+ ABISELECT(40,24),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg103fooEv,_ZThn12_N4gg103fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI4gg10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg103fooEv,_ZTv0_n12_N4gg103fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg103fooEv,_ZTv0_n12_N4gg103fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg10[];
+extern void _ZN4ee103fooEv();
+static VTBL_ENTRY _tg__ZTV4ee10__4gg10[] = {
+ ABISELECT(40,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee10[0]),
+ (VTBL_ENTRY)&_ZN4ee103fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee103fooEv,_ZTv0_n12_N4ee103fooEv)();
+extern void ABISELECT(_ZThn40_N4ee103fooEv,_ZThn28_N4ee103fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb10__4ee10__4gg10[] = {
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI4ee10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee103fooEv,_ZTv0_n12_N4ee103fooEv),
+};
+extern void _ZN4ff103fooEv();
+static VTBL_ENTRY _tg__ZTV4ff10__4gg10[] = {
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff10[0]),
+ (VTBL_ENTRY)&_ZN4ff103fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff103fooEv,_ZTv0_n12_N4ff103fooEv)();
+extern void ABISELECT(_ZThn40_N4ff103fooEv,_ZThn24_N4ff103fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd10__4ff10__4gg10[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4ff10[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff103fooEv,_ZTv0_n12_N4ff103fooEv),
+};
+static VTT_ENTRY vtt_gg10[] = {
+ {&(_ZTV4gg10[4]), 4,17},
+ {&(_tg__ZTV4ee10__4gg10[3]), 3,4},
+ {&(_tg__ZTV4bb10__4ee10__4gg10[3]), 3,4},
+ {&(_tg__ZTV4ff10__4gg10[3]), 3,4},
+ {&(_tg__ZTV4dd10__4ff10__4gg10[3]), 3,4},
+ {&(_ZTV4gg10[12]), 12,17},
+ {&(_ZTV4gg10[8]), 8,17},
+ {&(_ZTV4gg10[16]), 16,17},
+};
+extern VTBL_ENTRY _ZTI4gg10[];
+extern VTBL_ENTRY _ZTV4gg10[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg10[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff103fooEv,_ZTv0_n12_N4ff103fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4ff103fooEv,_ZThn24_N4ff103fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee103fooEv,_ZTv0_n12_N4ee103fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4ee103fooEv,_ZThn28_N4ee103fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg103fooEv,_ZTv0_n12_N4gg103fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg103fooEv,_ZThn36_N4gg103fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg103fooEv,_ZThn28_N4gg103fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg10 = { "gg10", // class name
+ bases_gg10, 6,
+ &(vtc_gg10[0]), // expected_vtbl_contents
+ &(vtt_gg10[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg10),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg10),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg10),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa11 {
+ int a;
+ aa11(); // _ZN4aa11C1Ev
+ virtual void foo(); // _ZN4aa113fooEv
+ ~aa11(); // tgen
+};
+//SIG(-1 aa11) C1{ v1 Fi}
+
+
+ aa11 ::aa11(){ note_ctor("aa11", this);}
+void aa11 ::foo(){vfunc_called(this, "_ZN4aa113fooEv");}
+aa11 ::~aa11(){ note_dtor("aa11", this);} // tgen
+
+static void Test_aa11()
+{
+ extern Class_Descriptor cd_aa11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa11, buf);
+ aa11 *dp, &lv = *(dp=new (buf) aa11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa11)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa11.a");
+ test_class_info(&lv, &cd_aa11);
+ dp->~aa11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa11(Test_aa11, "aa11", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa11C1Ev();
+extern void _ZN4aa11D1Ev();
+Name_Map name_map_aa11[] = {
+ NSPAIR(_ZN4aa11C1Ev),
+ NSPAIR(_ZN4aa11D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa11[];
+extern void _ZN4aa113fooEv();
+static VTBL_ENTRY vtc_aa11[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa11[0]),
+ (VTBL_ENTRY)&_ZN4aa113fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa11[];
+extern VTBL_ENTRY _ZTV4aa11[];
+Class_Descriptor cd_aa11 = { "aa11", // class name
+ 0,0,//no base classes
+ &(vtc_aa11[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa11),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa11),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb11 {
+ int b;
+ bb11(); // _ZN4bb11C1Ev
+ virtual void foo(); // _ZN4bb113fooEv
+ ~bb11(); // tgen
+};
+//SIG(-1 bb11) C1{ v1 Fi}
+
+
+ bb11 ::bb11(){ note_ctor("bb11", this);}
+void bb11 ::foo(){vfunc_called(this, "_ZN4bb113fooEv");}
+bb11 ::~bb11(){ note_dtor("bb11", this);} // tgen
+
+static void Test_bb11()
+{
+ extern Class_Descriptor cd_bb11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb11, buf);
+ bb11 *dp, &lv = *(dp=new (buf) bb11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb11)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb11.b");
+ test_class_info(&lv, &cd_bb11);
+ dp->~bb11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb11(Test_bb11, "bb11", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb11C1Ev();
+extern void _ZN4bb11D1Ev();
+Name_Map name_map_bb11[] = {
+ NSPAIR(_ZN4bb11C1Ev),
+ NSPAIR(_ZN4bb11D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb11[];
+extern void _ZN4bb113fooEv();
+static VTBL_ENTRY vtc_bb11[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb11[0]),
+ (VTBL_ENTRY)&_ZN4bb113fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb11[];
+extern VTBL_ENTRY _ZTV4bb11[];
+Class_Descriptor cd_bb11 = { "bb11", // class name
+ 0,0,//no base classes
+ &(vtc_bb11[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb11),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb11),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc11 {
+ int c;
+ cc11(); // _ZN4cc11C1Ev
+ virtual void foo(); // _ZN4cc113fooEv
+ ~cc11(); // tgen
+};
+//SIG(-1 cc11) C1{ v1 Fi}
+
+
+ cc11 ::cc11(){ note_ctor("cc11", this);}
+void cc11 ::foo(){vfunc_called(this, "_ZN4cc113fooEv");}
+cc11 ::~cc11(){ note_dtor("cc11", this);} // tgen
+
+static void Test_cc11()
+{
+ extern Class_Descriptor cd_cc11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc11, buf);
+ cc11 *dp, &lv = *(dp=new (buf) cc11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc11)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc11.c");
+ test_class_info(&lv, &cd_cc11);
+ dp->~cc11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc11(Test_cc11, "cc11", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc11C1Ev();
+extern void _ZN4cc11D1Ev();
+Name_Map name_map_cc11[] = {
+ NSPAIR(_ZN4cc11C1Ev),
+ NSPAIR(_ZN4cc11D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc11[];
+extern void _ZN4cc113fooEv();
+static VTBL_ENTRY vtc_cc11[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc11[0]),
+ (VTBL_ENTRY)&_ZN4cc113fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc11[];
+extern VTBL_ENTRY _ZTV4cc11[];
+Class_Descriptor cd_cc11 = { "cc11", // class name
+ 0,0,//no base classes
+ &(vtc_cc11[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc11),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc11),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd11 {
+ int d;
+ dd11(); // _ZN4dd11C1Ev
+ virtual void foo(); // _ZN4dd113fooEv
+ ~dd11(); // tgen
+};
+//SIG(-1 dd11) C1{ v1 Fi}
+
+
+ dd11 ::dd11(){ note_ctor("dd11", this);}
+void dd11 ::foo(){vfunc_called(this, "_ZN4dd113fooEv");}
+dd11 ::~dd11(){ note_dtor("dd11", this);} // tgen
+
+static void Test_dd11()
+{
+ extern Class_Descriptor cd_dd11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd11, buf);
+ dd11 *dp, &lv = *(dp=new (buf) dd11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd11)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd11.d");
+ test_class_info(&lv, &cd_dd11);
+ dp->~dd11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd11(Test_dd11, "dd11", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd11C1Ev();
+extern void _ZN4dd11D1Ev();
+Name_Map name_map_dd11[] = {
+ NSPAIR(_ZN4dd11C1Ev),
+ NSPAIR(_ZN4dd11D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd11[];
+extern void _ZN4dd113fooEv();
+static VTBL_ENTRY vtc_dd11[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd11[0]),
+ (VTBL_ENTRY)&_ZN4dd113fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd11[];
+extern VTBL_ENTRY _ZTV4dd11[];
+Class_Descriptor cd_dd11 = { "dd11", // class name
+ 0,0,//no base classes
+ &(vtc_dd11[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd11),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd11),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11 : virtual aa11 , virtual bb11 {
+ int e;
+ ee11(const ABISELECT(__tsi64,int) *const *); // _ZN4ee11C2Ev
+ virtual void foo(); // _ZN4ee113fooEv
+ ~ee11(); // tgen
+ ee11(); // tgen
+};
+//SIG(-1 ee11) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee11 ::ee11(const ABISELECT(__tsi64,int) *const *){}
+void ee11 ::foo(){vfunc_called(this, "_ZN4ee113fooEv");}
+ee11 ::~ee11(){ note_dtor("ee11", this);} // tgen
+ee11 ::ee11(){ note_ctor("ee11", this);} // tgen
+
+static void Test_ee11()
+{
+ extern Class_Descriptor cd_ee11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee11, buf);
+ ee11 *dp, &lv = *(dp=new (buf) ee11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11)");
+ check_base_class_offset(lv, (aa11*), ABISELECT(16,8), "ee11");
+ check_base_class_offset(lv, (bb11*), ABISELECT(32,16), "ee11");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11.e");
+ test_class_info(&lv, &cd_ee11);
+ dp->~ee11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11(Test_ee11, "ee11", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee11C1Ev();
+extern void _ZN4ee11D1Ev();
+Name_Map name_map_ee11[] = {
+ NSPAIR(_ZN4ee11C1Ev),
+ NSPAIR(_ZN4ee11D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa11;
+extern VTBL_ENTRY _ZTI4aa11[];
+extern VTBL_ENTRY _ZTV4aa11[];
+extern Class_Descriptor cd_bb11;
+extern VTBL_ENTRY _ZTI4bb11[];
+extern VTBL_ENTRY _ZTV4bb11[];
+static Base_Class bases_ee11[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa11, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb11, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee11[];
+extern void _ZN4ee113fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv)();
+extern void ABISELECT(_ZThn16_N4ee113fooEv,_ZThn8_N4ee113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv)();
+extern void ABISELECT(_ZThn32_N4ee113fooEv,_ZThn16_N4ee113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee11[0]),
+ (VTBL_ENTRY)&_ZN4ee113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee11[];
+static VTT_ENTRY vtt_ee11[] = {
+ {&(_ZTV4ee11[4]), 4,13},
+ {&(_ZTV4ee11[8]), 8,13},
+ {&(_ZTV4ee11[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee11[];
+extern VTBL_ENTRY _ZTV4ee11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee11[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee113fooEv,_ZThn16_N4ee113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee113fooEv,_ZThn8_N4ee113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11 = { "ee11", // class name
+ bases_ee11, 2,
+ &(vtc_ee11[0]), // expected_vtbl_contents
+ &(vtt_ee11[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee11),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee11),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee11),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff11 : cc11 , virtual dd11 {
+ int f;
+ ff11(const ABISELECT(__tsi64,int) *const *); // _ZN4ff11C2Ev
+ virtual void foo(); // _ZN4ff113fooEv
+ ~ff11(); // tgen
+ ff11(); // tgen
+};
+//SIG(-1 ff11) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff11 ::ff11(const ABISELECT(__tsi64,int) *const *){}
+void ff11 ::foo(){vfunc_called(this, "_ZN4ff113fooEv");}
+ff11 ::~ff11(){ note_dtor("ff11", this);} // tgen
+ff11 ::ff11(){ note_ctor("ff11", this);} // tgen
+
+static void Test_ff11()
+{
+ extern Class_Descriptor cd_ff11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff11, buf);
+ ff11 *dp, &lv = *(dp=new (buf) ff11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff11)");
+ check_base_class_offset(lv, (cc11*), 0, "ff11");
+ check_base_class_offset(lv, (dd11*), ABISELECT(16,12), "ff11");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff11.f");
+ test_class_info(&lv, &cd_ff11);
+ dp->~ff11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff11(Test_ff11, "ff11", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff11C1Ev();
+extern void _ZN4ff11D1Ev();
+Name_Map name_map_ff11[] = {
+ NSPAIR(_ZN4ff11C1Ev),
+ NSPAIR(_ZN4ff11D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc11;
+extern VTBL_ENTRY _ZTI4cc11[];
+extern VTBL_ENTRY _ZTV4cc11[];
+extern Class_Descriptor cd_dd11;
+extern VTBL_ENTRY _ZTI4dd11[];
+extern VTBL_ENTRY _ZTV4dd11[];
+static Base_Class bases_ff11[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc11, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd11, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff11[];
+extern void _ZN4ff113fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff113fooEv,_ZTv0_n12_N4ff113fooEv)();
+extern void ABISELECT(_ZThn16_N4ff113fooEv,_ZThn12_N4ff113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff11[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff11[0]),
+ (VTBL_ENTRY)&_ZN4ff113fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff113fooEv,_ZTv0_n12_N4ff113fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff11[];
+static VTT_ENTRY vtt_ff11[] = {
+ {&(_ZTV4ff11[3]), 3,8},
+ {&(_ZTV4ff11[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff11[];
+extern VTBL_ENTRY _ZTV4ff11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff11[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff113fooEv,_ZTv0_n12_N4ff113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff113fooEv,_ZThn12_N4ff113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff11 = { "ff11", // class name
+ bases_ff11, 2,
+ &(vtc_ff11[0]), // expected_vtbl_contents
+ &(vtt_ff11[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff11),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff11),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff11),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg11 : ee11 , ff11 {
+ int g;
+ gg11(const ABISELECT(__tsi64,int) *const *); // _ZN4gg11C2Ev
+ virtual void foo(); // _ZN4gg113fooEv
+ ~gg11(); // tgen
+ gg11(); // tgen
+};
+//SIG(1 gg11) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg11 ::gg11(const ABISELECT(__tsi64,int) *const *){}
+void gg11 ::foo(){vfunc_called(this, "_ZN4gg113fooEv");}
+gg11 ::~gg11(){ note_dtor("gg11", this);} // tgen
+gg11 ::gg11(){ note_ctor("gg11", this);} // tgen
+
+static void Test_gg11()
+{
+ extern Class_Descriptor cd_gg11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg11, buf);
+ gg11 *dp, &lv = *(dp=new (buf) gg11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg11)");
+ check_base_class_offset(lv, (aa11*)(ee11*), ABISELECT(40,24), "gg11");
+ check_base_class_offset(lv, (bb11*)(ee11*), ABISELECT(56,32), "gg11");
+ check_base_class_offset(lv, (ee11*), 0, "gg11");
+ check_base_class_offset(lv, (cc11*)(ff11*), ABISELECT(16,8), "gg11");
+ check_base_class_offset(lv, (dd11*)(ff11*), ABISELECT(72,40), "gg11");
+ check_base_class_offset(lv, (ff11*), ABISELECT(16,8), "gg11");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg11.g");
+ test_class_info(&lv, &cd_gg11);
+ dp->~gg11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg11(Test_gg11, "gg11", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg11C1Ev();
+extern void _ZN4gg11D1Ev();
+Name_Map name_map_gg11[] = {
+ NSPAIR(_ZN4gg11C1Ev),
+ NSPAIR(_ZN4gg11D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa11;
+extern VTBL_ENTRY _ZTI4aa11[];
+extern VTBL_ENTRY _ZTV4aa11[];
+extern Class_Descriptor cd_bb11;
+extern VTBL_ENTRY _ZTI4bb11[];
+extern VTBL_ENTRY _ZTV4bb11[];
+extern Class_Descriptor cd_ee11;
+extern VTBL_ENTRY _ZTI4ee11[];
+extern VTBL_ENTRY _ZTV4ee11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee11[];
+extern Class_Descriptor cd_cc11;
+extern VTBL_ENTRY _ZTI4cc11[];
+extern VTBL_ENTRY _ZTV4cc11[];
+extern Class_Descriptor cd_dd11;
+extern VTBL_ENTRY _ZTI4dd11[];
+extern VTBL_ENTRY _ZTV4dd11[];
+extern Class_Descriptor cd_ff11;
+extern VTBL_ENTRY _ZTI4ff11[];
+extern VTBL_ENTRY _ZTV4ff11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff11[];
+static Base_Class bases_gg11[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa11, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb11, ABISELECT(56,32), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee11, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc11, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd11, ABISELECT(72,40), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 10, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff11, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg11[];
+extern void _ZN4gg113fooEv();
+extern void ABISELECT(_ZThn16_N4gg113fooEv,_ZThn8_N4gg113fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv)();
+extern void ABISELECT(_ZThn40_N4gg113fooEv,_ZThn24_N4gg113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv)();
+extern void ABISELECT(_ZThn56_N4gg113fooEv,_ZThn32_N4gg113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv)();
+extern void ABISELECT(_ZThn72_N4gg113fooEv,_ZThn40_N4gg113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg11[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg11[0]),
+ (VTBL_ENTRY)&_ZN4gg113fooEv,
+ ABISELECT(56,32),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg113fooEv,_ZThn8_N4gg113fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg11[];
+extern void _ZN4ee113fooEv();
+static VTBL_ENTRY _tg__ZTV4ee11__4gg11[] = {
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee11[0]),
+ (VTBL_ENTRY)&_ZN4ee113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv)();
+extern void ABISELECT(_ZThn40_N4ee113fooEv,_ZThn24_N4ee113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa11__4ee11__4gg11[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4ee11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv)();
+extern void ABISELECT(_ZThn56_N4ee113fooEv,_ZThn32_N4ee113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb11__4ee11__4gg11[] = {
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4ee11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv),
+};
+extern void _ZN4ff113fooEv();
+static VTBL_ENTRY _tg__ZTV4ff11__4gg11[] = {
+ ABISELECT(56,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff11[0]),
+ (VTBL_ENTRY)&_ZN4ff113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff113fooEv,_ZTv0_n12_N4ff113fooEv)();
+extern void ABISELECT(_ZThn56_N4ff113fooEv,_ZThn32_N4ff113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd11__4ff11__4gg11[] = {
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4ff11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff113fooEv,_ZTv0_n12_N4ff113fooEv),
+};
+static VTT_ENTRY vtt_gg11[] = {
+ {&(_ZTV4gg11[5]), 5,22},
+ {&(_tg__ZTV4ee11__4gg11[4]), 4,5},
+ {&(_tg__ZTV4aa11__4ee11__4gg11[3]), 3,4},
+ {&(_tg__ZTV4bb11__4ee11__4gg11[3]), 3,4},
+ {&(_tg__ZTV4ff11__4gg11[3]), 3,4},
+ {&(_tg__ZTV4dd11__4ff11__4gg11[3]), 3,4},
+ {&(_ZTV4gg11[13]), 13,22},
+ {&(_ZTV4gg11[17]), 17,22},
+ {&(_ZTV4gg11[9]), 9,22},
+ {&(_ZTV4gg11[21]), 21,22},
+};
+extern VTBL_ENTRY _ZTI4gg11[];
+extern VTBL_ENTRY _ZTV4gg11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg11[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff113fooEv,_ZTv0_n12_N4ff113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff113fooEv,_ZThn32_N4ff113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee113fooEv,_ZTv0_n12_N4ee113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ee113fooEv,_ZThn32_N4ee113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4ee113fooEv,_ZThn24_N4ee113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg113fooEv,_ZTv0_n12_N4gg113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg113fooEv,_ZThn40_N4gg113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg113fooEv,_ZThn32_N4gg113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg113fooEv,_ZThn24_N4gg113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg11 = { "gg11", // class name
+ bases_gg11, 6,
+ &(vtc_gg11[0]), // expected_vtbl_contents
+ &(vtt_gg11[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg11),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg11),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg11),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa12 {
+ int a;
+ aa12(); // _ZN4aa12C1Ev
+ virtual void foo(); // _ZN4aa123fooEv
+ ~aa12(); // tgen
+};
+//SIG(-1 aa12) C1{ v1 Fi}
+
+
+ aa12 ::aa12(){ note_ctor("aa12", this);}
+void aa12 ::foo(){vfunc_called(this, "_ZN4aa123fooEv");}
+aa12 ::~aa12(){ note_dtor("aa12", this);} // tgen
+
+static void Test_aa12()
+{
+ extern Class_Descriptor cd_aa12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa12, buf);
+ aa12 *dp, &lv = *(dp=new (buf) aa12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa12)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa12.a");
+ test_class_info(&lv, &cd_aa12);
+ dp->~aa12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa12(Test_aa12, "aa12", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa12C1Ev();
+extern void _ZN4aa12D1Ev();
+Name_Map name_map_aa12[] = {
+ NSPAIR(_ZN4aa12C1Ev),
+ NSPAIR(_ZN4aa12D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa12[];
+extern void _ZN4aa123fooEv();
+static VTBL_ENTRY vtc_aa12[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa12[0]),
+ (VTBL_ENTRY)&_ZN4aa123fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa12[];
+extern VTBL_ENTRY _ZTV4aa12[];
+Class_Descriptor cd_aa12 = { "aa12", // class name
+ 0,0,//no base classes
+ &(vtc_aa12[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa12),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa12),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb12 {
+ int b;
+ bb12(); // _ZN4bb12C1Ev
+ virtual void foo(); // _ZN4bb123fooEv
+ ~bb12(); // tgen
+};
+//SIG(-1 bb12) C1{ v1 Fi}
+
+
+ bb12 ::bb12(){ note_ctor("bb12", this);}
+void bb12 ::foo(){vfunc_called(this, "_ZN4bb123fooEv");}
+bb12 ::~bb12(){ note_dtor("bb12", this);} // tgen
+
+static void Test_bb12()
+{
+ extern Class_Descriptor cd_bb12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb12, buf);
+ bb12 *dp, &lv = *(dp=new (buf) bb12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb12)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb12.b");
+ test_class_info(&lv, &cd_bb12);
+ dp->~bb12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb12(Test_bb12, "bb12", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb12C1Ev();
+extern void _ZN4bb12D1Ev();
+Name_Map name_map_bb12[] = {
+ NSPAIR(_ZN4bb12C1Ev),
+ NSPAIR(_ZN4bb12D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb12[];
+extern void _ZN4bb123fooEv();
+static VTBL_ENTRY vtc_bb12[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb12[0]),
+ (VTBL_ENTRY)&_ZN4bb123fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb12[];
+extern VTBL_ENTRY _ZTV4bb12[];
+Class_Descriptor cd_bb12 = { "bb12", // class name
+ 0,0,//no base classes
+ &(vtc_bb12[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb12),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb12),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc12 {
+ int c;
+ cc12(); // _ZN4cc12C1Ev
+ virtual void foo(); // _ZN4cc123fooEv
+ ~cc12(); // tgen
+};
+//SIG(-1 cc12) C1{ v1 Fi}
+
+
+ cc12 ::cc12(){ note_ctor("cc12", this);}
+void cc12 ::foo(){vfunc_called(this, "_ZN4cc123fooEv");}
+cc12 ::~cc12(){ note_dtor("cc12", this);} // tgen
+
+static void Test_cc12()
+{
+ extern Class_Descriptor cd_cc12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc12, buf);
+ cc12 *dp, &lv = *(dp=new (buf) cc12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc12)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc12.c");
+ test_class_info(&lv, &cd_cc12);
+ dp->~cc12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc12(Test_cc12, "cc12", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc12C1Ev();
+extern void _ZN4cc12D1Ev();
+Name_Map name_map_cc12[] = {
+ NSPAIR(_ZN4cc12C1Ev),
+ NSPAIR(_ZN4cc12D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc12[];
+extern void _ZN4cc123fooEv();
+static VTBL_ENTRY vtc_cc12[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc12[0]),
+ (VTBL_ENTRY)&_ZN4cc123fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc12[];
+extern VTBL_ENTRY _ZTV4cc12[];
+Class_Descriptor cd_cc12 = { "cc12", // class name
+ 0,0,//no base classes
+ &(vtc_cc12[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc12),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc12),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd12 {
+ int d;
+ dd12(); // _ZN4dd12C1Ev
+ virtual void foo(); // _ZN4dd123fooEv
+ ~dd12(); // tgen
+};
+//SIG(-1 dd12) C1{ v1 Fi}
+
+
+ dd12 ::dd12(){ note_ctor("dd12", this);}
+void dd12 ::foo(){vfunc_called(this, "_ZN4dd123fooEv");}
+dd12 ::~dd12(){ note_dtor("dd12", this);} // tgen
+
+static void Test_dd12()
+{
+ extern Class_Descriptor cd_dd12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd12, buf);
+ dd12 *dp, &lv = *(dp=new (buf) dd12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd12)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd12.d");
+ test_class_info(&lv, &cd_dd12);
+ dp->~dd12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd12(Test_dd12, "dd12", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd12C1Ev();
+extern void _ZN4dd12D1Ev();
+Name_Map name_map_dd12[] = {
+ NSPAIR(_ZN4dd12C1Ev),
+ NSPAIR(_ZN4dd12D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd12[];
+extern void _ZN4dd123fooEv();
+static VTBL_ENTRY vtc_dd12[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd12[0]),
+ (VTBL_ENTRY)&_ZN4dd123fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd12[];
+extern VTBL_ENTRY _ZTV4dd12[];
+Class_Descriptor cd_dd12 = { "dd12", // class name
+ 0,0,//no base classes
+ &(vtc_dd12[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd12),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd12),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12 : aa12 , bb12 {
+ int e;
+ ee12(); // _ZN4ee12C1Ev
+ virtual void foo(); // _ZN4ee123fooEv
+ ~ee12(); // tgen
+};
+//SIG(-1 ee12) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee12 ::ee12(){ note_ctor("ee12", this);}
+void ee12 ::foo(){vfunc_called(this, "_ZN4ee123fooEv");}
+ee12 ::~ee12(){ note_dtor("ee12", this);} // tgen
+
+static void Test_ee12()
+{
+ extern Class_Descriptor cd_ee12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee12, buf);
+ ee12 *dp, &lv = *(dp=new (buf) ee12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12)");
+ check_base_class_offset(lv, (aa12*), 0, "ee12");
+ check_base_class_offset(lv, (bb12*), ABISELECT(16,8), "ee12");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee12.e");
+ test_class_info(&lv, &cd_ee12);
+ dp->~ee12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12(Test_ee12, "ee12", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee12C1Ev();
+extern void _ZN4ee12D1Ev();
+Name_Map name_map_ee12[] = {
+ NSPAIR(_ZN4ee12C1Ev),
+ NSPAIR(_ZN4ee12D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa12;
+extern VTBL_ENTRY _ZTI4aa12[];
+extern VTBL_ENTRY _ZTV4aa12[];
+extern Class_Descriptor cd_bb12;
+extern VTBL_ENTRY _ZTI4bb12[];
+extern VTBL_ENTRY _ZTV4bb12[];
+static Base_Class bases_ee12[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa12, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb12, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee12[];
+extern void _ZN4ee123fooEv();
+extern void ABISELECT(_ZThn16_N4ee123fooEv,_ZThn8_N4ee123fooEv)();
+static VTBL_ENTRY vtc_ee12[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee12[0]),
+ (VTBL_ENTRY)&_ZN4ee123fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee123fooEv,_ZThn8_N4ee123fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee12[];
+extern VTBL_ENTRY _ZTV4ee12[];
+Class_Descriptor cd_ee12 = { "ee12", // class name
+ bases_ee12, 2,
+ &(vtc_ee12[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee12),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee12),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff12 : virtual cc12 , virtual dd12 {
+ int f;
+ ff12(const ABISELECT(__tsi64,int) *const *); // _ZN4ff12C2Ev
+ virtual void foo(); // _ZN4ff123fooEv
+ ~ff12(); // tgen
+ ff12(); // tgen
+};
+//SIG(-1 ff12) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff12 ::ff12(const ABISELECT(__tsi64,int) *const *){}
+void ff12 ::foo(){vfunc_called(this, "_ZN4ff123fooEv");}
+ff12 ::~ff12(){ note_dtor("ff12", this);} // tgen
+ff12 ::ff12(){ note_ctor("ff12", this);} // tgen
+
+static void Test_ff12()
+{
+ extern Class_Descriptor cd_ff12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff12, buf);
+ ff12 *dp, &lv = *(dp=new (buf) ff12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff12)");
+ check_base_class_offset(lv, (cc12*), ABISELECT(16,8), "ff12");
+ check_base_class_offset(lv, (dd12*), ABISELECT(32,16), "ff12");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff12.f");
+ test_class_info(&lv, &cd_ff12);
+ dp->~ff12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff12(Test_ff12, "ff12", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff12C1Ev();
+extern void _ZN4ff12D1Ev();
+Name_Map name_map_ff12[] = {
+ NSPAIR(_ZN4ff12C1Ev),
+ NSPAIR(_ZN4ff12D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc12;
+extern VTBL_ENTRY _ZTI4cc12[];
+extern VTBL_ENTRY _ZTV4cc12[];
+extern Class_Descriptor cd_dd12;
+extern VTBL_ENTRY _ZTI4dd12[];
+extern VTBL_ENTRY _ZTV4dd12[];
+static Base_Class bases_ff12[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc12, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd12, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff12[];
+extern void _ZN4ff123fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv)();
+extern void ABISELECT(_ZThn16_N4ff123fooEv,_ZThn8_N4ff123fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv)();
+extern void ABISELECT(_ZThn32_N4ff123fooEv,_ZThn16_N4ff123fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff12[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff12[0]),
+ (VTBL_ENTRY)&_ZN4ff123fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff12[];
+static VTT_ENTRY vtt_ff12[] = {
+ {&(_ZTV4ff12[4]), 4,13},
+ {&(_ZTV4ff12[8]), 8,13},
+ {&(_ZTV4ff12[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff12[];
+extern VTBL_ENTRY _ZTV4ff12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff12[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff123fooEv,_ZThn16_N4ff123fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff123fooEv,_ZThn8_N4ff123fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff12 = { "ff12", // class name
+ bases_ff12, 2,
+ &(vtc_ff12[0]), // expected_vtbl_contents
+ &(vtt_ff12[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff12),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff12),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff12),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names29,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg12 : ee12 , ff12 {
+ int g;
+ gg12(const ABISELECT(__tsi64,int) *const *); // _ZN4gg12C2Ev
+ virtual void foo(); // _ZN4gg123fooEv
+ ~gg12(); // tgen
+ gg12(); // tgen
+};
+//SIG(1 gg12) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg12 ::gg12(const ABISELECT(__tsi64,int) *const *){}
+void gg12 ::foo(){vfunc_called(this, "_ZN4gg123fooEv");}
+gg12 ::~gg12(){ note_dtor("gg12", this);} // tgen
+gg12 ::gg12(){ note_ctor("gg12", this);} // tgen
+
+static void Test_gg12()
+{
+ extern Class_Descriptor cd_gg12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg12, buf);
+ gg12 *dp, &lv = *(dp=new (buf) gg12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg12)");
+ check_base_class_offset(lv, (aa12*)(ee12*), 0, "gg12");
+ check_base_class_offset(lv, (bb12*)(ee12*), ABISELECT(16,8), "gg12");
+ check_base_class_offset(lv, (ee12*), 0, "gg12");
+ check_base_class_offset(lv, (cc12*)(ff12*), ABISELECT(48,32), "gg12");
+ check_base_class_offset(lv, (dd12*)(ff12*), ABISELECT(64,40), "gg12");
+ check_base_class_offset(lv, (ff12*), ABISELECT(32,20), "gg12");
+ check_field_offset(lv, g, ABISELECT(44,28), "gg12.g");
+ test_class_info(&lv, &cd_gg12);
+ dp->~gg12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg12(Test_gg12, "gg12", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg12C1Ev();
+extern void _ZN4gg12D1Ev();
+Name_Map name_map_gg12[] = {
+ NSPAIR(_ZN4gg12C1Ev),
+ NSPAIR(_ZN4gg12D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa12;
+extern VTBL_ENTRY _ZTI4aa12[];
+extern VTBL_ENTRY _ZTV4aa12[];
+extern Class_Descriptor cd_bb12;
+extern VTBL_ENTRY _ZTI4bb12[];
+extern VTBL_ENTRY _ZTV4bb12[];
+extern Class_Descriptor cd_ee12;
+extern VTBL_ENTRY _ZTI4ee12[];
+extern VTBL_ENTRY _ZTV4ee12[];
+extern Class_Descriptor cd_cc12;
+extern VTBL_ENTRY _ZTI4cc12[];
+extern VTBL_ENTRY _ZTV4cc12[];
+extern Class_Descriptor cd_dd12;
+extern VTBL_ENTRY _ZTI4dd12[];
+extern VTBL_ENTRY _ZTV4dd12[];
+extern Class_Descriptor cd_ff12;
+extern VTBL_ENTRY _ZTI4ff12[];
+extern VTBL_ENTRY _ZTV4ff12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff12[];
+static Base_Class bases_gg12[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa12, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb12, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee12, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc12, ABISELECT(48,32), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd12, ABISELECT(64,40), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff12, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg12[];
+extern void _ZN4gg123fooEv();
+extern void ABISELECT(_ZThn16_N4gg123fooEv,_ZThn8_N4gg123fooEv)();
+extern void ABISELECT(_ZThn32_N4gg123fooEv,_ZThn20_N4gg123fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg123fooEv,_ZTv0_n12_N4gg123fooEv)();
+extern void ABISELECT(_ZThn48_N4gg123fooEv,_ZThn32_N4gg123fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg123fooEv,_ZTv0_n12_N4gg123fooEv)();
+extern void ABISELECT(_ZThn64_N4gg123fooEv,_ZThn40_N4gg123fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg12[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg12[0]),
+ (VTBL_ENTRY)&_ZN4gg123fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg123fooEv,_ZThn8_N4gg123fooEv),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn32_N4gg123fooEv,_ZThn20_N4gg123fooEv),
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4gg12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg123fooEv,_ZTv0_n12_N4gg123fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg123fooEv,_ZTv0_n12_N4gg123fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg12[];
+extern void _ZN4ff123fooEv();
+static VTBL_ENTRY _tg__ZTV4ff12__4gg12[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff12[0]),
+ (VTBL_ENTRY)&_ZN4ff123fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv)();
+extern void ABISELECT(_ZThn16_N4ff123fooEv,_ZThn12_N4ff123fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc12__4ff12__4gg12[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv)();
+extern void ABISELECT(_ZThn32_N4ff123fooEv,_ZThn20_N4ff123fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd12__4ff12__4gg12[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ff12[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv),
+};
+static VTT_ENTRY vtt_gg12[] = {
+ {&(_ZTV4gg12[4]), 4,21},
+ {&(_tg__ZTV4ff12__4gg12[4]), 4,5},
+ {&(_tg__ZTV4cc12__4ff12__4gg12[3]), 3,4},
+ {&(_tg__ZTV4dd12__4ff12__4gg12[3]), 3,4},
+ {&(_ZTV4gg12[12]), 12,21},
+ {&(_ZTV4gg12[16]), 16,21},
+ {&(_ZTV4gg12[20]), 20,21},
+};
+extern VTBL_ENTRY _ZTI4gg12[];
+extern VTBL_ENTRY _ZTV4gg12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg12[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff123fooEv,_ZTv0_n12_N4ff123fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff123fooEv,_ZThn20_N4ff123fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff123fooEv,_ZThn12_N4ff123fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg123fooEv,_ZTv0_n12_N4gg123fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg123fooEv,_ZThn40_N4gg123fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg123fooEv,_ZThn32_N4gg123fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg12 = { "gg12", // class name
+ bases_gg12, 6,
+ &(vtc_gg12[0]), // expected_vtbl_contents
+ &(vtt_gg12[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg12),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg12),21, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg12),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa13 {
+ int a;
+ aa13(); // _ZN4aa13C1Ev
+ virtual void foo(); // _ZN4aa133fooEv
+ ~aa13(); // tgen
+};
+//SIG(-1 aa13) C1{ v1 Fi}
+
+
+ aa13 ::aa13(){ note_ctor("aa13", this);}
+void aa13 ::foo(){vfunc_called(this, "_ZN4aa133fooEv");}
+aa13 ::~aa13(){ note_dtor("aa13", this);} // tgen
+
+static void Test_aa13()
+{
+ extern Class_Descriptor cd_aa13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa13, buf);
+ aa13 *dp, &lv = *(dp=new (buf) aa13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa13)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa13.a");
+ test_class_info(&lv, &cd_aa13);
+ dp->~aa13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa13(Test_aa13, "aa13", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa13C1Ev();
+extern void _ZN4aa13D1Ev();
+Name_Map name_map_aa13[] = {
+ NSPAIR(_ZN4aa13C1Ev),
+ NSPAIR(_ZN4aa13D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa13[];
+extern void _ZN4aa133fooEv();
+static VTBL_ENTRY vtc_aa13[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa13[0]),
+ (VTBL_ENTRY)&_ZN4aa133fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa13[];
+extern VTBL_ENTRY _ZTV4aa13[];
+Class_Descriptor cd_aa13 = { "aa13", // class name
+ 0,0,//no base classes
+ &(vtc_aa13[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa13),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa13),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb13 {
+ int b;
+ bb13(); // _ZN4bb13C1Ev
+ virtual void foo(); // _ZN4bb133fooEv
+ ~bb13(); // tgen
+};
+//SIG(-1 bb13) C1{ v1 Fi}
+
+
+ bb13 ::bb13(){ note_ctor("bb13", this);}
+void bb13 ::foo(){vfunc_called(this, "_ZN4bb133fooEv");}
+bb13 ::~bb13(){ note_dtor("bb13", this);} // tgen
+
+static void Test_bb13()
+{
+ extern Class_Descriptor cd_bb13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb13, buf);
+ bb13 *dp, &lv = *(dp=new (buf) bb13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb13)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb13.b");
+ test_class_info(&lv, &cd_bb13);
+ dp->~bb13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb13(Test_bb13, "bb13", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb13C1Ev();
+extern void _ZN4bb13D1Ev();
+Name_Map name_map_bb13[] = {
+ NSPAIR(_ZN4bb13C1Ev),
+ NSPAIR(_ZN4bb13D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb13[];
+extern void _ZN4bb133fooEv();
+static VTBL_ENTRY vtc_bb13[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb13[0]),
+ (VTBL_ENTRY)&_ZN4bb133fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb13[];
+extern VTBL_ENTRY _ZTV4bb13[];
+Class_Descriptor cd_bb13 = { "bb13", // class name
+ 0,0,//no base classes
+ &(vtc_bb13[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb13),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb13),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc13 {
+ int c;
+ cc13(); // _ZN4cc13C1Ev
+ virtual void foo(); // _ZN4cc133fooEv
+ ~cc13(); // tgen
+};
+//SIG(-1 cc13) C1{ v1 Fi}
+
+
+ cc13 ::cc13(){ note_ctor("cc13", this);}
+void cc13 ::foo(){vfunc_called(this, "_ZN4cc133fooEv");}
+cc13 ::~cc13(){ note_dtor("cc13", this);} // tgen
+
+static void Test_cc13()
+{
+ extern Class_Descriptor cd_cc13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc13, buf);
+ cc13 *dp, &lv = *(dp=new (buf) cc13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc13)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc13.c");
+ test_class_info(&lv, &cd_cc13);
+ dp->~cc13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc13(Test_cc13, "cc13", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc13C1Ev();
+extern void _ZN4cc13D1Ev();
+Name_Map name_map_cc13[] = {
+ NSPAIR(_ZN4cc13C1Ev),
+ NSPAIR(_ZN4cc13D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc13[];
+extern void _ZN4cc133fooEv();
+static VTBL_ENTRY vtc_cc13[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc13[0]),
+ (VTBL_ENTRY)&_ZN4cc133fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc13[];
+extern VTBL_ENTRY _ZTV4cc13[];
+Class_Descriptor cd_cc13 = { "cc13", // class name
+ 0,0,//no base classes
+ &(vtc_cc13[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc13),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc13),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd13 {
+ int d;
+ dd13(); // _ZN4dd13C1Ev
+ virtual void foo(); // _ZN4dd133fooEv
+ ~dd13(); // tgen
+};
+//SIG(-1 dd13) C1{ v1 Fi}
+
+
+ dd13 ::dd13(){ note_ctor("dd13", this);}
+void dd13 ::foo(){vfunc_called(this, "_ZN4dd133fooEv");}
+dd13 ::~dd13(){ note_dtor("dd13", this);} // tgen
+
+static void Test_dd13()
+{
+ extern Class_Descriptor cd_dd13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd13, buf);
+ dd13 *dp, &lv = *(dp=new (buf) dd13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd13)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd13.d");
+ test_class_info(&lv, &cd_dd13);
+ dp->~dd13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd13(Test_dd13, "dd13", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd13C1Ev();
+extern void _ZN4dd13D1Ev();
+Name_Map name_map_dd13[] = {
+ NSPAIR(_ZN4dd13C1Ev),
+ NSPAIR(_ZN4dd13D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd13[];
+extern void _ZN4dd133fooEv();
+static VTBL_ENTRY vtc_dd13[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd13[0]),
+ (VTBL_ENTRY)&_ZN4dd133fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd13[];
+extern VTBL_ENTRY _ZTV4dd13[];
+Class_Descriptor cd_dd13 = { "dd13", // class name
+ 0,0,//no base classes
+ &(vtc_dd13[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd13),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd13),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13 : virtual aa13 , bb13 {
+ int e;
+ ee13(const ABISELECT(__tsi64,int) *const *); // _ZN4ee13C2Ev
+ virtual void foo(); // _ZN4ee133fooEv
+ ~ee13(); // tgen
+ ee13(); // tgen
+};
+//SIG(-1 ee13) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee13 ::ee13(const ABISELECT(__tsi64,int) *const *){}
+void ee13 ::foo(){vfunc_called(this, "_ZN4ee133fooEv");}
+ee13 ::~ee13(){ note_dtor("ee13", this);} // tgen
+ee13 ::ee13(){ note_ctor("ee13", this);} // tgen
+
+static void Test_ee13()
+{
+ extern Class_Descriptor cd_ee13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee13, buf);
+ ee13 *dp, &lv = *(dp=new (buf) ee13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13)");
+ check_base_class_offset(lv, (aa13*), ABISELECT(16,12), "ee13");
+ check_base_class_offset(lv, (bb13*), 0, "ee13");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee13.e");
+ test_class_info(&lv, &cd_ee13);
+ dp->~ee13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13(Test_ee13, "ee13", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee13C1Ev();
+extern void _ZN4ee13D1Ev();
+Name_Map name_map_ee13[] = {
+ NSPAIR(_ZN4ee13C1Ev),
+ NSPAIR(_ZN4ee13D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa13;
+extern VTBL_ENTRY _ZTI4aa13[];
+extern VTBL_ENTRY _ZTV4aa13[];
+extern Class_Descriptor cd_bb13;
+extern VTBL_ENTRY _ZTI4bb13[];
+extern VTBL_ENTRY _ZTV4bb13[];
+static Base_Class bases_ee13[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa13, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb13, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee13[];
+extern void _ZN4ee133fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee133fooEv,_ZTv0_n12_N4ee133fooEv)();
+extern void ABISELECT(_ZThn16_N4ee133fooEv,_ZThn12_N4ee133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee13[0]),
+ (VTBL_ENTRY)&_ZN4ee133fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee133fooEv,_ZTv0_n12_N4ee133fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee13[];
+static VTT_ENTRY vtt_ee13[] = {
+ {&(_ZTV4ee13[3]), 3,8},
+ {&(_ZTV4ee13[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee13[];
+extern VTBL_ENTRY _ZTV4ee13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee13[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee133fooEv,_ZTv0_n12_N4ee133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee133fooEv,_ZThn12_N4ee133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13 = { "ee13", // class name
+ bases_ee13, 2,
+ &(vtc_ee13[0]), // expected_vtbl_contents
+ &(vtt_ee13[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee13),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee13),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee13),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff13 : virtual cc13 , virtual dd13 {
+ int f;
+ ff13(const ABISELECT(__tsi64,int) *const *); // _ZN4ff13C2Ev
+ virtual void foo(); // _ZN4ff133fooEv
+ ~ff13(); // tgen
+ ff13(); // tgen
+};
+//SIG(-1 ff13) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff13 ::ff13(const ABISELECT(__tsi64,int) *const *){}
+void ff13 ::foo(){vfunc_called(this, "_ZN4ff133fooEv");}
+ff13 ::~ff13(){ note_dtor("ff13", this);} // tgen
+ff13 ::ff13(){ note_ctor("ff13", this);} // tgen
+
+static void Test_ff13()
+{
+ extern Class_Descriptor cd_ff13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff13, buf);
+ ff13 *dp, &lv = *(dp=new (buf) ff13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff13)");
+ check_base_class_offset(lv, (cc13*), ABISELECT(16,8), "ff13");
+ check_base_class_offset(lv, (dd13*), ABISELECT(32,16), "ff13");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff13.f");
+ test_class_info(&lv, &cd_ff13);
+ dp->~ff13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff13(Test_ff13, "ff13", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff13C1Ev();
+extern void _ZN4ff13D1Ev();
+Name_Map name_map_ff13[] = {
+ NSPAIR(_ZN4ff13C1Ev),
+ NSPAIR(_ZN4ff13D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc13;
+extern VTBL_ENTRY _ZTI4cc13[];
+extern VTBL_ENTRY _ZTV4cc13[];
+extern Class_Descriptor cd_dd13;
+extern VTBL_ENTRY _ZTI4dd13[];
+extern VTBL_ENTRY _ZTV4dd13[];
+static Base_Class bases_ff13[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc13, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd13, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff13[];
+extern void _ZN4ff133fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv)();
+extern void ABISELECT(_ZThn16_N4ff133fooEv,_ZThn8_N4ff133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv)();
+extern void ABISELECT(_ZThn32_N4ff133fooEv,_ZThn16_N4ff133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff13[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff13[0]),
+ (VTBL_ENTRY)&_ZN4ff133fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff13[];
+static VTT_ENTRY vtt_ff13[] = {
+ {&(_ZTV4ff13[4]), 4,13},
+ {&(_ZTV4ff13[8]), 8,13},
+ {&(_ZTV4ff13[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff13[];
+extern VTBL_ENTRY _ZTV4ff13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff13[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff133fooEv,_ZThn16_N4ff133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff133fooEv,_ZThn8_N4ff133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff13 = { "ff13", // class name
+ bases_ff13, 2,
+ &(vtc_ff13[0]), // expected_vtbl_contents
+ &(vtt_ff13[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff13),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff13),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff13),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg13 : ee13 , ff13 {
+ int g;
+ gg13(const ABISELECT(__tsi64,int) *const *); // _ZN4gg13C2Ev
+ virtual void foo(); // _ZN4gg133fooEv
+ ~gg13(); // tgen
+ gg13(); // tgen
+};
+//SIG(1 gg13) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg13 ::gg13(const ABISELECT(__tsi64,int) *const *){}
+void gg13 ::foo(){vfunc_called(this, "_ZN4gg133fooEv");}
+gg13 ::~gg13(){ note_dtor("gg13", this);} // tgen
+gg13 ::gg13(){ note_ctor("gg13", this);} // tgen
+
+static void Test_gg13()
+{
+ extern Class_Descriptor cd_gg13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg13, buf);
+ gg13 *dp, &lv = *(dp=new (buf) gg13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg13)");
+ check_base_class_offset(lv, (aa13*)(ee13*), ABISELECT(32,24), "gg13");
+ check_base_class_offset(lv, (bb13*)(ee13*), 0, "gg13");
+ check_base_class_offset(lv, (ee13*), 0, "gg13");
+ check_base_class_offset(lv, (cc13*)(ff13*), ABISELECT(48,32), "gg13");
+ check_base_class_offset(lv, (dd13*)(ff13*), ABISELECT(64,40), "gg13");
+ check_base_class_offset(lv, (ff13*), ABISELECT(16,12), "gg13");
+ check_field_offset(lv, g, ABISELECT(28,20), "gg13.g");
+ test_class_info(&lv, &cd_gg13);
+ dp->~gg13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg13(Test_gg13, "gg13", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg13C1Ev();
+extern void _ZN4gg13D1Ev();
+Name_Map name_map_gg13[] = {
+ NSPAIR(_ZN4gg13C1Ev),
+ NSPAIR(_ZN4gg13D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa13;
+extern VTBL_ENTRY _ZTI4aa13[];
+extern VTBL_ENTRY _ZTV4aa13[];
+extern Class_Descriptor cd_bb13;
+extern VTBL_ENTRY _ZTI4bb13[];
+extern VTBL_ENTRY _ZTV4bb13[];
+extern Class_Descriptor cd_ee13;
+extern VTBL_ENTRY _ZTI4ee13[];
+extern VTBL_ENTRY _ZTV4ee13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee13[];
+extern Class_Descriptor cd_cc13;
+extern VTBL_ENTRY _ZTI4cc13[];
+extern VTBL_ENTRY _ZTV4cc13[];
+extern Class_Descriptor cd_dd13;
+extern VTBL_ENTRY _ZTI4dd13[];
+extern VTBL_ENTRY _ZTV4dd13[];
+extern Class_Descriptor cd_ff13;
+extern VTBL_ENTRY _ZTI4ff13[];
+extern VTBL_ENTRY _ZTV4ff13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff13[];
+static Base_Class bases_gg13[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa13, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb13, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee13, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc13, ABISELECT(48,32), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd13, ABISELECT(64,40), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 10, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff13, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg13[];
+extern void _ZN4gg133fooEv();
+extern void ABISELECT(_ZThn16_N4gg133fooEv,_ZThn12_N4gg133fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv)();
+extern void ABISELECT(_ZThn32_N4gg133fooEv,_ZThn24_N4gg133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv)();
+extern void ABISELECT(_ZThn48_N4gg133fooEv,_ZThn32_N4gg133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv)();
+extern void ABISELECT(_ZThn64_N4gg133fooEv,_ZThn40_N4gg133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg13[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ ABISELECT(32,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg13[0]),
+ (VTBL_ENTRY)&_ZN4gg133fooEv,
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg133fooEv,_ZThn12_N4gg133fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI4gg13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv),
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4gg13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg13[];
+extern void _ZN4ee133fooEv();
+static VTBL_ENTRY _tg__ZTV4ee13__4gg13[] = {
+ ABISELECT(32,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee13[0]),
+ (VTBL_ENTRY)&_ZN4ee133fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee133fooEv,_ZTv0_n12_N4ee133fooEv)();
+extern void ABISELECT(_ZThn32_N4ee133fooEv,_ZThn24_N4ee133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa13__4ee13__4gg13[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI4ee13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee133fooEv,_ZTv0_n12_N4ee133fooEv),
+};
+extern void _ZN4ff133fooEv();
+static VTBL_ENTRY _tg__ZTV4ff13__4gg13[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff13[0]),
+ (VTBL_ENTRY)&_ZN4ff133fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv)();
+extern void ABISELECT(_ZThn32_N4ff133fooEv,_ZThn20_N4ff133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc13__4ff13__4gg13[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ff13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv)();
+extern void ABISELECT(_ZThn48_N4ff133fooEv,_ZThn28_N4ff133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd13__4ff13__4gg13[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4ff13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv),
+};
+static VTT_ENTRY vtt_gg13[] = {
+ {&(_ZTV4gg13[5]), 5,23},
+ {&(_tg__ZTV4ee13__4gg13[3]), 3,4},
+ {&(_tg__ZTV4aa13__4ee13__4gg13[3]), 3,4},
+ {&(_tg__ZTV4ff13__4gg13[4]), 4,5},
+ {&(_tg__ZTV4cc13__4ff13__4gg13[3]), 3,4},
+ {&(_tg__ZTV4dd13__4ff13__4gg13[3]), 3,4},
+ {&(_ZTV4gg13[14]), 14,23},
+ {&(_ZTV4gg13[10]), 10,23},
+ {&(_ZTV4gg13[18]), 18,23},
+ {&(_ZTV4gg13[22]), 22,23},
+};
+extern VTBL_ENTRY _ZTI4gg13[];
+extern VTBL_ENTRY _ZTV4gg13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg13[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff133fooEv,_ZTv0_n12_N4ff133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ff133fooEv,_ZThn28_N4ff133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff133fooEv,_ZThn20_N4ff133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee133fooEv,_ZTv0_n12_N4ee133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee133fooEv,_ZThn24_N4ee133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg133fooEv,_ZTv0_n12_N4gg133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg133fooEv,_ZThn40_N4gg133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg133fooEv,_ZThn32_N4gg133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg133fooEv,_ZThn24_N4gg133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg13 = { "gg13", // class name
+ bases_gg13, 6,
+ &(vtc_gg13[0]), // expected_vtbl_contents
+ &(vtt_gg13[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg13),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg13),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg13),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa14 {
+ int a;
+ aa14(); // _ZN4aa14C1Ev
+ virtual void foo(); // _ZN4aa143fooEv
+ ~aa14(); // tgen
+};
+//SIG(-1 aa14) C1{ v1 Fi}
+
+
+ aa14 ::aa14(){ note_ctor("aa14", this);}
+void aa14 ::foo(){vfunc_called(this, "_ZN4aa143fooEv");}
+aa14 ::~aa14(){ note_dtor("aa14", this);} // tgen
+
+static void Test_aa14()
+{
+ extern Class_Descriptor cd_aa14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa14, buf);
+ aa14 *dp, &lv = *(dp=new (buf) aa14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa14)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa14.a");
+ test_class_info(&lv, &cd_aa14);
+ dp->~aa14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa14(Test_aa14, "aa14", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa14C1Ev();
+extern void _ZN4aa14D1Ev();
+Name_Map name_map_aa14[] = {
+ NSPAIR(_ZN4aa14C1Ev),
+ NSPAIR(_ZN4aa14D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa14[];
+extern void _ZN4aa143fooEv();
+static VTBL_ENTRY vtc_aa14[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa14[0]),
+ (VTBL_ENTRY)&_ZN4aa143fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa14[];
+extern VTBL_ENTRY _ZTV4aa14[];
+Class_Descriptor cd_aa14 = { "aa14", // class name
+ 0,0,//no base classes
+ &(vtc_aa14[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa14),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa14),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb14 {
+ int b;
+ bb14(); // _ZN4bb14C1Ev
+ virtual void foo(); // _ZN4bb143fooEv
+ ~bb14(); // tgen
+};
+//SIG(-1 bb14) C1{ v1 Fi}
+
+
+ bb14 ::bb14(){ note_ctor("bb14", this);}
+void bb14 ::foo(){vfunc_called(this, "_ZN4bb143fooEv");}
+bb14 ::~bb14(){ note_dtor("bb14", this);} // tgen
+
+static void Test_bb14()
+{
+ extern Class_Descriptor cd_bb14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb14, buf);
+ bb14 *dp, &lv = *(dp=new (buf) bb14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb14)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb14.b");
+ test_class_info(&lv, &cd_bb14);
+ dp->~bb14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb14(Test_bb14, "bb14", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb14C1Ev();
+extern void _ZN4bb14D1Ev();
+Name_Map name_map_bb14[] = {
+ NSPAIR(_ZN4bb14C1Ev),
+ NSPAIR(_ZN4bb14D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb14[];
+extern void _ZN4bb143fooEv();
+static VTBL_ENTRY vtc_bb14[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb14[0]),
+ (VTBL_ENTRY)&_ZN4bb143fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb14[];
+extern VTBL_ENTRY _ZTV4bb14[];
+Class_Descriptor cd_bb14 = { "bb14", // class name
+ 0,0,//no base classes
+ &(vtc_bb14[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb14),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb14),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc14 {
+ int c;
+ cc14(); // _ZN4cc14C1Ev
+ virtual void foo(); // _ZN4cc143fooEv
+ ~cc14(); // tgen
+};
+//SIG(-1 cc14) C1{ v1 Fi}
+
+
+ cc14 ::cc14(){ note_ctor("cc14", this);}
+void cc14 ::foo(){vfunc_called(this, "_ZN4cc143fooEv");}
+cc14 ::~cc14(){ note_dtor("cc14", this);} // tgen
+
+static void Test_cc14()
+{
+ extern Class_Descriptor cd_cc14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc14, buf);
+ cc14 *dp, &lv = *(dp=new (buf) cc14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc14)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc14.c");
+ test_class_info(&lv, &cd_cc14);
+ dp->~cc14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc14(Test_cc14, "cc14", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc14C1Ev();
+extern void _ZN4cc14D1Ev();
+Name_Map name_map_cc14[] = {
+ NSPAIR(_ZN4cc14C1Ev),
+ NSPAIR(_ZN4cc14D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc14[];
+extern void _ZN4cc143fooEv();
+static VTBL_ENTRY vtc_cc14[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc14[0]),
+ (VTBL_ENTRY)&_ZN4cc143fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc14[];
+extern VTBL_ENTRY _ZTV4cc14[];
+Class_Descriptor cd_cc14 = { "cc14", // class name
+ 0,0,//no base classes
+ &(vtc_cc14[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc14),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc14),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd14 {
+ int d;
+ dd14(); // _ZN4dd14C1Ev
+ virtual void foo(); // _ZN4dd143fooEv
+ ~dd14(); // tgen
+};
+//SIG(-1 dd14) C1{ v1 Fi}
+
+
+ dd14 ::dd14(){ note_ctor("dd14", this);}
+void dd14 ::foo(){vfunc_called(this, "_ZN4dd143fooEv");}
+dd14 ::~dd14(){ note_dtor("dd14", this);} // tgen
+
+static void Test_dd14()
+{
+ extern Class_Descriptor cd_dd14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd14, buf);
+ dd14 *dp, &lv = *(dp=new (buf) dd14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd14)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd14.d");
+ test_class_info(&lv, &cd_dd14);
+ dp->~dd14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd14(Test_dd14, "dd14", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd14C1Ev();
+extern void _ZN4dd14D1Ev();
+Name_Map name_map_dd14[] = {
+ NSPAIR(_ZN4dd14C1Ev),
+ NSPAIR(_ZN4dd14D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd14[];
+extern void _ZN4dd143fooEv();
+static VTBL_ENTRY vtc_dd14[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd14[0]),
+ (VTBL_ENTRY)&_ZN4dd143fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd14[];
+extern VTBL_ENTRY _ZTV4dd14[];
+Class_Descriptor cd_dd14 = { "dd14", // class name
+ 0,0,//no base classes
+ &(vtc_dd14[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd14),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd14),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14 : aa14 , virtual bb14 {
+ int e;
+ ee14(const ABISELECT(__tsi64,int) *const *); // _ZN4ee14C2Ev
+ virtual void foo(); // _ZN4ee143fooEv
+ ~ee14(); // tgen
+ ee14(); // tgen
+};
+//SIG(-1 ee14) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee14 ::ee14(const ABISELECT(__tsi64,int) *const *){}
+void ee14 ::foo(){vfunc_called(this, "_ZN4ee143fooEv");}
+ee14 ::~ee14(){ note_dtor("ee14", this);} // tgen
+ee14 ::ee14(){ note_ctor("ee14", this);} // tgen
+
+static void Test_ee14()
+{
+ extern Class_Descriptor cd_ee14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee14, buf);
+ ee14 *dp, &lv = *(dp=new (buf) ee14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14)");
+ check_base_class_offset(lv, (aa14*), 0, "ee14");
+ check_base_class_offset(lv, (bb14*), ABISELECT(16,12), "ee14");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee14.e");
+ test_class_info(&lv, &cd_ee14);
+ dp->~ee14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14(Test_ee14, "ee14", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee14C1Ev();
+extern void _ZN4ee14D1Ev();
+Name_Map name_map_ee14[] = {
+ NSPAIR(_ZN4ee14C1Ev),
+ NSPAIR(_ZN4ee14D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa14;
+extern VTBL_ENTRY _ZTI4aa14[];
+extern VTBL_ENTRY _ZTV4aa14[];
+extern Class_Descriptor cd_bb14;
+extern VTBL_ENTRY _ZTI4bb14[];
+extern VTBL_ENTRY _ZTV4bb14[];
+static Base_Class bases_ee14[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa14, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb14, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee14[];
+extern void _ZN4ee143fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee143fooEv,_ZTv0_n12_N4ee143fooEv)();
+extern void ABISELECT(_ZThn16_N4ee143fooEv,_ZThn12_N4ee143fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee14[0]),
+ (VTBL_ENTRY)&_ZN4ee143fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee143fooEv,_ZTv0_n12_N4ee143fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee14[];
+static VTT_ENTRY vtt_ee14[] = {
+ {&(_ZTV4ee14[3]), 3,8},
+ {&(_ZTV4ee14[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee14[];
+extern VTBL_ENTRY _ZTV4ee14[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee14[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee143fooEv,_ZTv0_n12_N4ee143fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee143fooEv,_ZThn12_N4ee143fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14 = { "ee14", // class name
+ bases_ee14, 2,
+ &(vtc_ee14[0]), // expected_vtbl_contents
+ &(vtt_ee14[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee14),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee14),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee14),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff14 : virtual cc14 , virtual dd14 {
+ int f;
+ ff14(const ABISELECT(__tsi64,int) *const *); // _ZN4ff14C2Ev
+ virtual void foo(); // _ZN4ff143fooEv
+ ~ff14(); // tgen
+ ff14(); // tgen
+};
+//SIG(-1 ff14) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff14 ::ff14(const ABISELECT(__tsi64,int) *const *){}
+void ff14 ::foo(){vfunc_called(this, "_ZN4ff143fooEv");}
+ff14 ::~ff14(){ note_dtor("ff14", this);} // tgen
+ff14 ::ff14(){ note_ctor("ff14", this);} // tgen
+
+static void Test_ff14()
+{
+ extern Class_Descriptor cd_ff14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff14, buf);
+ ff14 *dp, &lv = *(dp=new (buf) ff14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff14)");
+ check_base_class_offset(lv, (cc14*), ABISELECT(16,8), "ff14");
+ check_base_class_offset(lv, (dd14*), ABISELECT(32,16), "ff14");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff14.f");
+ test_class_info(&lv, &cd_ff14);
+ dp->~ff14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff14(Test_ff14, "ff14", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff14C1Ev();
+extern void _ZN4ff14D1Ev();
+Name_Map name_map_ff14[] = {
+ NSPAIR(_ZN4ff14C1Ev),
+ NSPAIR(_ZN4ff14D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc14;
+extern VTBL_ENTRY _ZTI4cc14[];
+extern VTBL_ENTRY _ZTV4cc14[];
+extern Class_Descriptor cd_dd14;
+extern VTBL_ENTRY _ZTI4dd14[];
+extern VTBL_ENTRY _ZTV4dd14[];
+static Base_Class bases_ff14[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc14, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd14, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff14[];
+extern void _ZN4ff143fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv)();
+extern void ABISELECT(_ZThn16_N4ff143fooEv,_ZThn8_N4ff143fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv)();
+extern void ABISELECT(_ZThn32_N4ff143fooEv,_ZThn16_N4ff143fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff14[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff14[0]),
+ (VTBL_ENTRY)&_ZN4ff143fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff14[];
+static VTT_ENTRY vtt_ff14[] = {
+ {&(_ZTV4ff14[4]), 4,13},
+ {&(_ZTV4ff14[8]), 8,13},
+ {&(_ZTV4ff14[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff14[];
+extern VTBL_ENTRY _ZTV4ff14[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff14[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff143fooEv,_ZThn16_N4ff143fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff143fooEv,_ZThn8_N4ff143fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff14 = { "ff14", // class name
+ bases_ff14, 2,
+ &(vtc_ff14[0]), // expected_vtbl_contents
+ &(vtt_ff14[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff14),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff14),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff14),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg14 : ee14 , ff14 {
+ int g;
+ gg14(const ABISELECT(__tsi64,int) *const *); // _ZN4gg14C2Ev
+ virtual void foo(); // _ZN4gg143fooEv
+ ~gg14(); // tgen
+ gg14(); // tgen
+};
+//SIG(1 gg14) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg14 ::gg14(const ABISELECT(__tsi64,int) *const *){}
+void gg14 ::foo(){vfunc_called(this, "_ZN4gg143fooEv");}
+gg14 ::~gg14(){ note_dtor("gg14", this);} // tgen
+gg14 ::gg14(){ note_ctor("gg14", this);} // tgen
+
+static void Test_gg14()
+{
+ extern Class_Descriptor cd_gg14;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg14, buf);
+ gg14 *dp, &lv = *(dp=new (buf) gg14());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg14)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg14)");
+ check_base_class_offset(lv, (aa14*)(ee14*), 0, "gg14");
+ check_base_class_offset(lv, (bb14*)(ee14*), ABISELECT(32,24), "gg14");
+ check_base_class_offset(lv, (ee14*), 0, "gg14");
+ check_base_class_offset(lv, (cc14*)(ff14*), ABISELECT(48,32), "gg14");
+ check_base_class_offset(lv, (dd14*)(ff14*), ABISELECT(64,40), "gg14");
+ check_base_class_offset(lv, (ff14*), ABISELECT(16,12), "gg14");
+ check_field_offset(lv, g, ABISELECT(28,20), "gg14.g");
+ test_class_info(&lv, &cd_gg14);
+ dp->~gg14();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg14(Test_gg14, "gg14", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg14C1Ev();
+extern void _ZN4gg14D1Ev();
+Name_Map name_map_gg14[] = {
+ NSPAIR(_ZN4gg14C1Ev),
+ NSPAIR(_ZN4gg14D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa14;
+extern VTBL_ENTRY _ZTI4aa14[];
+extern VTBL_ENTRY _ZTV4aa14[];
+extern Class_Descriptor cd_bb14;
+extern VTBL_ENTRY _ZTI4bb14[];
+extern VTBL_ENTRY _ZTV4bb14[];
+extern Class_Descriptor cd_ee14;
+extern VTBL_ENTRY _ZTI4ee14[];
+extern VTBL_ENTRY _ZTV4ee14[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee14[];
+extern Class_Descriptor cd_cc14;
+extern VTBL_ENTRY _ZTI4cc14[];
+extern VTBL_ENTRY _ZTV4cc14[];
+extern Class_Descriptor cd_dd14;
+extern VTBL_ENTRY _ZTI4dd14[];
+extern VTBL_ENTRY _ZTV4dd14[];
+extern Class_Descriptor cd_ff14;
+extern VTBL_ENTRY _ZTI4ff14[];
+extern VTBL_ENTRY _ZTV4ff14[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff14[];
+static Base_Class bases_gg14[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa14, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb14, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee14, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc14, ABISELECT(48,32), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd14, ABISELECT(64,40), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 10, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff14, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg14[];
+extern void _ZN4gg143fooEv();
+extern void ABISELECT(_ZThn16_N4gg143fooEv,_ZThn12_N4gg143fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv)();
+extern void ABISELECT(_ZThn32_N4gg143fooEv,_ZThn24_N4gg143fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv)();
+extern void ABISELECT(_ZThn48_N4gg143fooEv,_ZThn32_N4gg143fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv)();
+extern void ABISELECT(_ZThn64_N4gg143fooEv,_ZThn40_N4gg143fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg14[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ ABISELECT(32,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg14[0]),
+ (VTBL_ENTRY)&_ZN4gg143fooEv,
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg143fooEv,_ZThn12_N4gg143fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI4gg14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv),
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4gg14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg14[];
+extern void _ZN4ee143fooEv();
+static VTBL_ENTRY _tg__ZTV4ee14__4gg14[] = {
+ ABISELECT(32,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee14[0]),
+ (VTBL_ENTRY)&_ZN4ee143fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee143fooEv,_ZTv0_n12_N4ee143fooEv)();
+extern void ABISELECT(_ZThn32_N4ee143fooEv,_ZThn24_N4ee143fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb14__4ee14__4gg14[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI4ee14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee143fooEv,_ZTv0_n12_N4ee143fooEv),
+};
+extern void _ZN4ff143fooEv();
+static VTBL_ENTRY _tg__ZTV4ff14__4gg14[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff14[0]),
+ (VTBL_ENTRY)&_ZN4ff143fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv)();
+extern void ABISELECT(_ZThn32_N4ff143fooEv,_ZThn20_N4ff143fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc14__4ff14__4gg14[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ff14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv)();
+extern void ABISELECT(_ZThn48_N4ff143fooEv,_ZThn28_N4ff143fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd14__4ff14__4gg14[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4ff14[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv),
+};
+static VTT_ENTRY vtt_gg14[] = {
+ {&(_ZTV4gg14[5]), 5,23},
+ {&(_tg__ZTV4ee14__4gg14[3]), 3,4},
+ {&(_tg__ZTV4bb14__4ee14__4gg14[3]), 3,4},
+ {&(_tg__ZTV4ff14__4gg14[4]), 4,5},
+ {&(_tg__ZTV4cc14__4ff14__4gg14[3]), 3,4},
+ {&(_tg__ZTV4dd14__4ff14__4gg14[3]), 3,4},
+ {&(_ZTV4gg14[14]), 14,23},
+ {&(_ZTV4gg14[10]), 10,23},
+ {&(_ZTV4gg14[18]), 18,23},
+ {&(_ZTV4gg14[22]), 22,23},
+};
+extern VTBL_ENTRY _ZTI4gg14[];
+extern VTBL_ENTRY _ZTV4gg14[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg14[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff143fooEv,_ZTv0_n12_N4ff143fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ff143fooEv,_ZThn28_N4ff143fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff143fooEv,_ZThn20_N4ff143fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee143fooEv,_ZTv0_n12_N4ee143fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee143fooEv,_ZThn24_N4ee143fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg143fooEv,_ZTv0_n12_N4gg143fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg143fooEv,_ZThn40_N4gg143fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg143fooEv,_ZThn32_N4gg143fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg143fooEv,_ZThn24_N4gg143fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg14 = { "gg14", // class name
+ bases_gg14, 6,
+ &(vtc_gg14[0]), // expected_vtbl_contents
+ &(vtt_gg14[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg14),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg14),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg14),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa15 {
+ int a;
+ aa15(); // _ZN4aa15C1Ev
+ virtual void foo(); // _ZN4aa153fooEv
+ ~aa15(); // tgen
+};
+//SIG(-1 aa15) C1{ v1 Fi}
+
+
+ aa15 ::aa15(){ note_ctor("aa15", this);}
+void aa15 ::foo(){vfunc_called(this, "_ZN4aa153fooEv");}
+aa15 ::~aa15(){ note_dtor("aa15", this);} // tgen
+
+static void Test_aa15()
+{
+ extern Class_Descriptor cd_aa15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa15, buf);
+ aa15 *dp, &lv = *(dp=new (buf) aa15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa15)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa15.a");
+ test_class_info(&lv, &cd_aa15);
+ dp->~aa15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa15(Test_aa15, "aa15", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa15C1Ev();
+extern void _ZN4aa15D1Ev();
+Name_Map name_map_aa15[] = {
+ NSPAIR(_ZN4aa15C1Ev),
+ NSPAIR(_ZN4aa15D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa15[];
+extern void _ZN4aa153fooEv();
+static VTBL_ENTRY vtc_aa15[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa15[0]),
+ (VTBL_ENTRY)&_ZN4aa153fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa15[];
+extern VTBL_ENTRY _ZTV4aa15[];
+Class_Descriptor cd_aa15 = { "aa15", // class name
+ 0,0,//no base classes
+ &(vtc_aa15[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa15),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa15),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb15 {
+ int b;
+ bb15(); // _ZN4bb15C1Ev
+ virtual void foo(); // _ZN4bb153fooEv
+ ~bb15(); // tgen
+};
+//SIG(-1 bb15) C1{ v1 Fi}
+
+
+ bb15 ::bb15(){ note_ctor("bb15", this);}
+void bb15 ::foo(){vfunc_called(this, "_ZN4bb153fooEv");}
+bb15 ::~bb15(){ note_dtor("bb15", this);} // tgen
+
+static void Test_bb15()
+{
+ extern Class_Descriptor cd_bb15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb15, buf);
+ bb15 *dp, &lv = *(dp=new (buf) bb15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb15)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb15.b");
+ test_class_info(&lv, &cd_bb15);
+ dp->~bb15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb15(Test_bb15, "bb15", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb15C1Ev();
+extern void _ZN4bb15D1Ev();
+Name_Map name_map_bb15[] = {
+ NSPAIR(_ZN4bb15C1Ev),
+ NSPAIR(_ZN4bb15D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb15[];
+extern void _ZN4bb153fooEv();
+static VTBL_ENTRY vtc_bb15[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb15[0]),
+ (VTBL_ENTRY)&_ZN4bb153fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb15[];
+extern VTBL_ENTRY _ZTV4bb15[];
+Class_Descriptor cd_bb15 = { "bb15", // class name
+ 0,0,//no base classes
+ &(vtc_bb15[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb15),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb15),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc15 {
+ int c;
+ cc15(); // _ZN4cc15C1Ev
+ virtual void foo(); // _ZN4cc153fooEv
+ ~cc15(); // tgen
+};
+//SIG(-1 cc15) C1{ v1 Fi}
+
+
+ cc15 ::cc15(){ note_ctor("cc15", this);}
+void cc15 ::foo(){vfunc_called(this, "_ZN4cc153fooEv");}
+cc15 ::~cc15(){ note_dtor("cc15", this);} // tgen
+
+static void Test_cc15()
+{
+ extern Class_Descriptor cd_cc15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc15, buf);
+ cc15 *dp, &lv = *(dp=new (buf) cc15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc15)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc15.c");
+ test_class_info(&lv, &cd_cc15);
+ dp->~cc15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc15(Test_cc15, "cc15", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc15C1Ev();
+extern void _ZN4cc15D1Ev();
+Name_Map name_map_cc15[] = {
+ NSPAIR(_ZN4cc15C1Ev),
+ NSPAIR(_ZN4cc15D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc15[];
+extern void _ZN4cc153fooEv();
+static VTBL_ENTRY vtc_cc15[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc15[0]),
+ (VTBL_ENTRY)&_ZN4cc153fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc15[];
+extern VTBL_ENTRY _ZTV4cc15[];
+Class_Descriptor cd_cc15 = { "cc15", // class name
+ 0,0,//no base classes
+ &(vtc_cc15[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc15),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc15),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd15 {
+ int d;
+ dd15(); // _ZN4dd15C1Ev
+ virtual void foo(); // _ZN4dd153fooEv
+ ~dd15(); // tgen
+};
+//SIG(-1 dd15) C1{ v1 Fi}
+
+
+ dd15 ::dd15(){ note_ctor("dd15", this);}
+void dd15 ::foo(){vfunc_called(this, "_ZN4dd153fooEv");}
+dd15 ::~dd15(){ note_dtor("dd15", this);} // tgen
+
+static void Test_dd15()
+{
+ extern Class_Descriptor cd_dd15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd15, buf);
+ dd15 *dp, &lv = *(dp=new (buf) dd15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd15)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd15.d");
+ test_class_info(&lv, &cd_dd15);
+ dp->~dd15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd15(Test_dd15, "dd15", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd15C1Ev();
+extern void _ZN4dd15D1Ev();
+Name_Map name_map_dd15[] = {
+ NSPAIR(_ZN4dd15C1Ev),
+ NSPAIR(_ZN4dd15D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd15[];
+extern void _ZN4dd153fooEv();
+static VTBL_ENTRY vtc_dd15[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd15[0]),
+ (VTBL_ENTRY)&_ZN4dd153fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd15[];
+extern VTBL_ENTRY _ZTV4dd15[];
+Class_Descriptor cd_dd15 = { "dd15", // class name
+ 0,0,//no base classes
+ &(vtc_dd15[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd15),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd15),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15 : virtual aa15 , virtual bb15 {
+ int e;
+ ee15(const ABISELECT(__tsi64,int) *const *); // _ZN4ee15C2Ev
+ virtual void foo(); // _ZN4ee153fooEv
+ ~ee15(); // tgen
+ ee15(); // tgen
+};
+//SIG(-1 ee15) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee15 ::ee15(const ABISELECT(__tsi64,int) *const *){}
+void ee15 ::foo(){vfunc_called(this, "_ZN4ee153fooEv");}
+ee15 ::~ee15(){ note_dtor("ee15", this);} // tgen
+ee15 ::ee15(){ note_ctor("ee15", this);} // tgen
+
+static void Test_ee15()
+{
+ extern Class_Descriptor cd_ee15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee15, buf);
+ ee15 *dp, &lv = *(dp=new (buf) ee15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15)");
+ check_base_class_offset(lv, (aa15*), ABISELECT(16,8), "ee15");
+ check_base_class_offset(lv, (bb15*), ABISELECT(32,16), "ee15");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15.e");
+ test_class_info(&lv, &cd_ee15);
+ dp->~ee15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15(Test_ee15, "ee15", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee15C1Ev();
+extern void _ZN4ee15D1Ev();
+Name_Map name_map_ee15[] = {
+ NSPAIR(_ZN4ee15C1Ev),
+ NSPAIR(_ZN4ee15D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa15;
+extern VTBL_ENTRY _ZTI4aa15[];
+extern VTBL_ENTRY _ZTV4aa15[];
+extern Class_Descriptor cd_bb15;
+extern VTBL_ENTRY _ZTI4bb15[];
+extern VTBL_ENTRY _ZTV4bb15[];
+static Base_Class bases_ee15[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa15, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb15, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee15[];
+extern void _ZN4ee153fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv)();
+extern void ABISELECT(_ZThn16_N4ee153fooEv,_ZThn8_N4ee153fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv)();
+extern void ABISELECT(_ZThn32_N4ee153fooEv,_ZThn16_N4ee153fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee15[0]),
+ (VTBL_ENTRY)&_ZN4ee153fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee15[];
+static VTT_ENTRY vtt_ee15[] = {
+ {&(_ZTV4ee15[4]), 4,13},
+ {&(_ZTV4ee15[8]), 8,13},
+ {&(_ZTV4ee15[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee15[];
+extern VTBL_ENTRY _ZTV4ee15[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee15[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee153fooEv,_ZThn16_N4ee153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee153fooEv,_ZThn8_N4ee153fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15 = { "ee15", // class name
+ bases_ee15, 2,
+ &(vtc_ee15[0]), // expected_vtbl_contents
+ &(vtt_ee15[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee15),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee15),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee15),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff15 : virtual cc15 , virtual dd15 {
+ int f;
+ ff15(const ABISELECT(__tsi64,int) *const *); // _ZN4ff15C2Ev
+ virtual void foo(); // _ZN4ff153fooEv
+ ~ff15(); // tgen
+ ff15(); // tgen
+};
+//SIG(-1 ff15) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff15 ::ff15(const ABISELECT(__tsi64,int) *const *){}
+void ff15 ::foo(){vfunc_called(this, "_ZN4ff153fooEv");}
+ff15 ::~ff15(){ note_dtor("ff15", this);} // tgen
+ff15 ::ff15(){ note_ctor("ff15", this);} // tgen
+
+static void Test_ff15()
+{
+ extern Class_Descriptor cd_ff15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff15, buf);
+ ff15 *dp, &lv = *(dp=new (buf) ff15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff15)");
+ check_base_class_offset(lv, (cc15*), ABISELECT(16,8), "ff15");
+ check_base_class_offset(lv, (dd15*), ABISELECT(32,16), "ff15");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff15.f");
+ test_class_info(&lv, &cd_ff15);
+ dp->~ff15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff15(Test_ff15, "ff15", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff15C1Ev();
+extern void _ZN4ff15D1Ev();
+Name_Map name_map_ff15[] = {
+ NSPAIR(_ZN4ff15C1Ev),
+ NSPAIR(_ZN4ff15D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc15;
+extern VTBL_ENTRY _ZTI4cc15[];
+extern VTBL_ENTRY _ZTV4cc15[];
+extern Class_Descriptor cd_dd15;
+extern VTBL_ENTRY _ZTI4dd15[];
+extern VTBL_ENTRY _ZTV4dd15[];
+static Base_Class bases_ff15[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc15, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd15, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff15[];
+extern void _ZN4ff153fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv)();
+extern void ABISELECT(_ZThn16_N4ff153fooEv,_ZThn8_N4ff153fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv)();
+extern void ABISELECT(_ZThn32_N4ff153fooEv,_ZThn16_N4ff153fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff15[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff15[0]),
+ (VTBL_ENTRY)&_ZN4ff153fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff15[];
+static VTT_ENTRY vtt_ff15[] = {
+ {&(_ZTV4ff15[4]), 4,13},
+ {&(_ZTV4ff15[8]), 8,13},
+ {&(_ZTV4ff15[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff15[];
+extern VTBL_ENTRY _ZTV4ff15[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff15[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff153fooEv,_ZThn16_N4ff153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff153fooEv,_ZThn8_N4ff153fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff15 = { "ff15", // class name
+ bases_ff15, 2,
+ &(vtc_ff15[0]), // expected_vtbl_contents
+ &(vtt_ff15[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff15),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff15),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff15),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg15 : ee15 , ff15 {
+ int g;
+ gg15(const ABISELECT(__tsi64,int) *const *); // _ZN4gg15C2Ev
+ virtual void foo(); // _ZN4gg153fooEv
+ ~gg15(); // tgen
+ gg15(); // tgen
+};
+//SIG(1 gg15) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg15 ::gg15(const ABISELECT(__tsi64,int) *const *){}
+void gg15 ::foo(){vfunc_called(this, "_ZN4gg153fooEv");}
+gg15 ::~gg15(){ note_dtor("gg15", this);} // tgen
+gg15 ::gg15(){ note_ctor("gg15", this);} // tgen
+
+static void Test_gg15()
+{
+ extern Class_Descriptor cd_gg15;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg15, buf);
+ gg15 *dp, &lv = *(dp=new (buf) gg15());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg15)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg15)");
+ check_base_class_offset(lv, (aa15*)(ee15*), ABISELECT(32,20), "gg15");
+ check_base_class_offset(lv, (bb15*)(ee15*), ABISELECT(48,28), "gg15");
+ check_base_class_offset(lv, (ee15*), 0, "gg15");
+ check_base_class_offset(lv, (cc15*)(ff15*), ABISELECT(64,36), "gg15");
+ check_base_class_offset(lv, (dd15*)(ff15*), ABISELECT(80,44), "gg15");
+ check_base_class_offset(lv, (ff15*), ABISELECT(16,8), "gg15");
+ check_field_offset(lv, g, ABISELECT(28,16), "gg15.g");
+ test_class_info(&lv, &cd_gg15);
+ dp->~gg15();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg15(Test_gg15, "gg15", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg15C1Ev();
+extern void _ZN4gg15D1Ev();
+Name_Map name_map_gg15[] = {
+ NSPAIR(_ZN4gg15C1Ev),
+ NSPAIR(_ZN4gg15D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa15;
+extern VTBL_ENTRY _ZTI4aa15[];
+extern VTBL_ENTRY _ZTV4aa15[];
+extern Class_Descriptor cd_bb15;
+extern VTBL_ENTRY _ZTI4bb15[];
+extern VTBL_ENTRY _ZTV4bb15[];
+extern Class_Descriptor cd_ee15;
+extern VTBL_ENTRY _ZTI4ee15[];
+extern VTBL_ENTRY _ZTV4ee15[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee15[];
+extern Class_Descriptor cd_cc15;
+extern VTBL_ENTRY _ZTI4cc15[];
+extern VTBL_ENTRY _ZTV4cc15[];
+extern Class_Descriptor cd_dd15;
+extern VTBL_ENTRY _ZTI4dd15[];
+extern VTBL_ENTRY _ZTV4dd15[];
+extern Class_Descriptor cd_ff15;
+extern VTBL_ENTRY _ZTI4ff15[];
+extern VTBL_ENTRY _ZTV4ff15[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff15[];
+static Base_Class bases_gg15[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa15, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb15, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee15, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc15, ABISELECT(64,36), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 11, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd15, ABISELECT(80,44), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 12, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff15, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 10, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg15[];
+extern void _ZN4gg153fooEv();
+extern void ABISELECT(_ZThn16_N4gg153fooEv,_ZThn8_N4gg153fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv)();
+extern void ABISELECT(_ZThn32_N4gg153fooEv,_ZThn20_N4gg153fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv)();
+extern void ABISELECT(_ZThn48_N4gg153fooEv,_ZThn28_N4gg153fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv)();
+extern void ABISELECT(_ZThn64_N4gg153fooEv,_ZThn36_N4gg153fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv)();
+extern void ABISELECT(_ZThn80_N4gg153fooEv,_ZThn44_N4gg153fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg15[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg15[0]),
+ (VTBL_ENTRY)&_ZN4gg153fooEv,
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg153fooEv,_ZThn8_N4gg153fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv),
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg15[];
+extern void _ZN4ee153fooEv();
+static VTBL_ENTRY _tg__ZTV4ee15__4gg15[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee15[0]),
+ (VTBL_ENTRY)&_ZN4ee153fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv)();
+extern void ABISELECT(_ZThn32_N4ee153fooEv,_ZThn20_N4ee153fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa15__4ee15__4gg15[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ee15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv)();
+extern void ABISELECT(_ZThn48_N4ee153fooEv,_ZThn28_N4ee153fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb15__4ee15__4gg15[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4ee15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv),
+};
+extern void _ZN4ff153fooEv();
+static VTBL_ENTRY _tg__ZTV4ff15__4gg15[] = {
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff15[0]),
+ (VTBL_ENTRY)&_ZN4ff153fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv)();
+extern void ABISELECT(_ZThn48_N4ff153fooEv,_ZThn28_N4ff153fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc15__4ff15__4gg15[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4ff15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv)();
+extern void ABISELECT(_ZThn64_N4ff153fooEv,_ZThn36_N4ff153fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd15__4ff15__4gg15[] = {
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4ff15[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv),
+};
+static VTT_ENTRY vtt_gg15[] = {
+ {&(_ZTV4gg15[6]), 6,28},
+ {&(_tg__ZTV4ee15__4gg15[4]), 4,5},
+ {&(_tg__ZTV4aa15__4ee15__4gg15[3]), 3,4},
+ {&(_tg__ZTV4bb15__4ee15__4gg15[3]), 3,4},
+ {&(_tg__ZTV4ff15__4gg15[4]), 4,5},
+ {&(_tg__ZTV4cc15__4ff15__4gg15[3]), 3,4},
+ {&(_tg__ZTV4dd15__4ff15__4gg15[3]), 3,4},
+ {&(_ZTV4gg15[15]), 15,28},
+ {&(_ZTV4gg15[19]), 19,28},
+ {&(_ZTV4gg15[11]), 11,28},
+ {&(_ZTV4gg15[23]), 23,28},
+ {&(_ZTV4gg15[27]), 27,28},
+};
+extern VTBL_ENTRY _ZTI4gg15[];
+extern VTBL_ENTRY _ZTV4gg15[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg15[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff153fooEv,_ZTv0_n12_N4ff153fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4ff153fooEv,_ZThn36_N4ff153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ff153fooEv,_ZThn28_N4ff153fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee153fooEv,_ZTv0_n12_N4ee153fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ee153fooEv,_ZThn28_N4ee153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee153fooEv,_ZThn20_N4ee153fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg153fooEv,_ZTv0_n12_N4gg153fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg153fooEv,_ZThn44_N4gg153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg153fooEv,_ZThn36_N4gg153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg153fooEv,_ZThn28_N4gg153fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg153fooEv,_ZThn20_N4gg153fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg15 = { "gg15", // class name
+ bases_gg15, 6,
+ &(vtc_gg15[0]), // expected_vtbl_contents
+ &(vtt_gg15[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg15),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg15),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg15),12, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa16 {
+ int a;
+ aa16(); // _ZN4aa16C1Ev
+ virtual void foo(); // _ZN4aa163fooEv
+ ~aa16(); // tgen
+};
+//SIG(-1 aa16) C1{ v1 Fi}
+
+
+ aa16 ::aa16(){ note_ctor("aa16", this);}
+void aa16 ::foo(){vfunc_called(this, "_ZN4aa163fooEv");}
+aa16 ::~aa16(){ note_dtor("aa16", this);} // tgen
+
+static void Test_aa16()
+{
+ extern Class_Descriptor cd_aa16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa16, buf);
+ aa16 *dp, &lv = *(dp=new (buf) aa16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa16)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa16.a");
+ test_class_info(&lv, &cd_aa16);
+ dp->~aa16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa16(Test_aa16, "aa16", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa16C1Ev();
+extern void _ZN4aa16D1Ev();
+Name_Map name_map_aa16[] = {
+ NSPAIR(_ZN4aa16C1Ev),
+ NSPAIR(_ZN4aa16D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa16[];
+extern void _ZN4aa163fooEv();
+static VTBL_ENTRY vtc_aa16[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa16[0]),
+ (VTBL_ENTRY)&_ZN4aa163fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa16[];
+extern VTBL_ENTRY _ZTV4aa16[];
+Class_Descriptor cd_aa16 = { "aa16", // class name
+ 0,0,//no base classes
+ &(vtc_aa16[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa16),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa16),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb16 {
+ int b;
+ bb16(); // _ZN4bb16C1Ev
+ virtual void foo(); // _ZN4bb163fooEv
+ ~bb16(); // tgen
+};
+//SIG(-1 bb16) C1{ v1 Fi}
+
+
+ bb16 ::bb16(){ note_ctor("bb16", this);}
+void bb16 ::foo(){vfunc_called(this, "_ZN4bb163fooEv");}
+bb16 ::~bb16(){ note_dtor("bb16", this);} // tgen
+
+static void Test_bb16()
+{
+ extern Class_Descriptor cd_bb16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb16, buf);
+ bb16 *dp, &lv = *(dp=new (buf) bb16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb16)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb16.b");
+ test_class_info(&lv, &cd_bb16);
+ dp->~bb16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb16(Test_bb16, "bb16", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb16C1Ev();
+extern void _ZN4bb16D1Ev();
+Name_Map name_map_bb16[] = {
+ NSPAIR(_ZN4bb16C1Ev),
+ NSPAIR(_ZN4bb16D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb16[];
+extern void _ZN4bb163fooEv();
+static VTBL_ENTRY vtc_bb16[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb16[0]),
+ (VTBL_ENTRY)&_ZN4bb163fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb16[];
+extern VTBL_ENTRY _ZTV4bb16[];
+Class_Descriptor cd_bb16 = { "bb16", // class name
+ 0,0,//no base classes
+ &(vtc_bb16[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb16),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb16),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc16 {
+ int c;
+ cc16(); // _ZN4cc16C1Ev
+ virtual void foo(); // _ZN4cc163fooEv
+ ~cc16(); // tgen
+};
+//SIG(-1 cc16) C1{ v1 Fi}
+
+
+ cc16 ::cc16(){ note_ctor("cc16", this);}
+void cc16 ::foo(){vfunc_called(this, "_ZN4cc163fooEv");}
+cc16 ::~cc16(){ note_dtor("cc16", this);} // tgen
+
+static void Test_cc16()
+{
+ extern Class_Descriptor cd_cc16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc16, buf);
+ cc16 *dp, &lv = *(dp=new (buf) cc16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc16)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc16.c");
+ test_class_info(&lv, &cd_cc16);
+ dp->~cc16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc16(Test_cc16, "cc16", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc16C1Ev();
+extern void _ZN4cc16D1Ev();
+Name_Map name_map_cc16[] = {
+ NSPAIR(_ZN4cc16C1Ev),
+ NSPAIR(_ZN4cc16D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc16[];
+extern void _ZN4cc163fooEv();
+static VTBL_ENTRY vtc_cc16[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc16[0]),
+ (VTBL_ENTRY)&_ZN4cc163fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc16[];
+extern VTBL_ENTRY _ZTV4cc16[];
+Class_Descriptor cd_cc16 = { "cc16", // class name
+ 0,0,//no base classes
+ &(vtc_cc16[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc16),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc16),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd16 {
+ int d;
+ dd16(); // _ZN4dd16C1Ev
+ virtual void foo(); // _ZN4dd163fooEv
+ ~dd16(); // tgen
+};
+//SIG(-1 dd16) C1{ v1 Fi}
+
+
+ dd16 ::dd16(){ note_ctor("dd16", this);}
+void dd16 ::foo(){vfunc_called(this, "_ZN4dd163fooEv");}
+dd16 ::~dd16(){ note_dtor("dd16", this);} // tgen
+
+static void Test_dd16()
+{
+ extern Class_Descriptor cd_dd16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd16, buf);
+ dd16 *dp, &lv = *(dp=new (buf) dd16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd16)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd16.d");
+ test_class_info(&lv, &cd_dd16);
+ dp->~dd16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd16(Test_dd16, "dd16", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd16C1Ev();
+extern void _ZN4dd16D1Ev();
+Name_Map name_map_dd16[] = {
+ NSPAIR(_ZN4dd16C1Ev),
+ NSPAIR(_ZN4dd16D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd16[];
+extern void _ZN4dd163fooEv();
+static VTBL_ENTRY vtc_dd16[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd16[0]),
+ (VTBL_ENTRY)&_ZN4dd163fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd16[];
+extern VTBL_ENTRY _ZTV4dd16[];
+Class_Descriptor cd_dd16 = { "dd16", // class name
+ 0,0,//no base classes
+ &(vtc_dd16[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd16),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd16),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16 : aa16 , bb16 {
+ int e;
+ ee16(); // _ZN4ee16C1Ev
+ virtual void foo(); // _ZN4ee163fooEv
+ ~ee16(); // tgen
+};
+//SIG(-1 ee16) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee16 ::ee16(){ note_ctor("ee16", this);}
+void ee16 ::foo(){vfunc_called(this, "_ZN4ee163fooEv");}
+ee16 ::~ee16(){ note_dtor("ee16", this);} // tgen
+
+static void Test_ee16()
+{
+ extern Class_Descriptor cd_ee16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee16, buf);
+ ee16 *dp, &lv = *(dp=new (buf) ee16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16)");
+ check_base_class_offset(lv, (aa16*), 0, "ee16");
+ check_base_class_offset(lv, (bb16*), ABISELECT(16,8), "ee16");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee16.e");
+ test_class_info(&lv, &cd_ee16);
+ dp->~ee16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16(Test_ee16, "ee16", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee16C1Ev();
+extern void _ZN4ee16D1Ev();
+Name_Map name_map_ee16[] = {
+ NSPAIR(_ZN4ee16C1Ev),
+ NSPAIR(_ZN4ee16D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa16;
+extern VTBL_ENTRY _ZTI4aa16[];
+extern VTBL_ENTRY _ZTV4aa16[];
+extern Class_Descriptor cd_bb16;
+extern VTBL_ENTRY _ZTI4bb16[];
+extern VTBL_ENTRY _ZTV4bb16[];
+static Base_Class bases_ee16[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa16, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb16, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee16[];
+extern void _ZN4ee163fooEv();
+extern void ABISELECT(_ZThn16_N4ee163fooEv,_ZThn8_N4ee163fooEv)();
+static VTBL_ENTRY vtc_ee16[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee16[0]),
+ (VTBL_ENTRY)&_ZN4ee163fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee16[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee163fooEv,_ZThn8_N4ee163fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee16[];
+extern VTBL_ENTRY _ZTV4ee16[];
+Class_Descriptor cd_ee16 = { "ee16", // class name
+ bases_ee16, 2,
+ &(vtc_ee16[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee16),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee16),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff16 : cc16 , dd16 {
+ int f;
+ ff16(); // _ZN4ff16C1Ev
+ virtual void foo(); // _ZN4ff163fooEv
+ ~ff16(); // tgen
+};
+//SIG(-1 ff16) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff16 ::ff16(){ note_ctor("ff16", this);}
+void ff16 ::foo(){vfunc_called(this, "_ZN4ff163fooEv");}
+ff16 ::~ff16(){ note_dtor("ff16", this);} // tgen
+
+static void Test_ff16()
+{
+ extern Class_Descriptor cd_ff16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff16, buf);
+ ff16 *dp, &lv = *(dp=new (buf) ff16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff16)");
+ check_base_class_offset(lv, (cc16*), 0, "ff16");
+ check_base_class_offset(lv, (dd16*), ABISELECT(16,8), "ff16");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff16.f");
+ test_class_info(&lv, &cd_ff16);
+ dp->~ff16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff16(Test_ff16, "ff16", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff16C1Ev();
+extern void _ZN4ff16D1Ev();
+Name_Map name_map_ff16[] = {
+ NSPAIR(_ZN4ff16C1Ev),
+ NSPAIR(_ZN4ff16D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc16;
+extern VTBL_ENTRY _ZTI4cc16[];
+extern VTBL_ENTRY _ZTV4cc16[];
+extern Class_Descriptor cd_dd16;
+extern VTBL_ENTRY _ZTI4dd16[];
+extern VTBL_ENTRY _ZTV4dd16[];
+static Base_Class bases_ff16[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc16, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd16, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff16[];
+extern void _ZN4ff163fooEv();
+extern void ABISELECT(_ZThn16_N4ff163fooEv,_ZThn8_N4ff163fooEv)();
+static VTBL_ENTRY vtc_ff16[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff16[0]),
+ (VTBL_ENTRY)&_ZN4ff163fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff16[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff163fooEv,_ZThn8_N4ff163fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff16[];
+extern VTBL_ENTRY _ZTV4ff16[];
+Class_Descriptor cd_ff16 = { "ff16", // class name
+ bases_ff16, 2,
+ &(vtc_ff16[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff16),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff16),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg16 : virtual ee16 , ff16 {
+ int g;
+ gg16(const ABISELECT(__tsi64,int) *const *); // _ZN4gg16C2Ev
+ virtual void foo(); // _ZN4gg163fooEv
+ ~gg16(); // tgen
+ gg16(); // tgen
+};
+//SIG(1 gg16) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg16 ::gg16(const ABISELECT(__tsi64,int) *const *){}
+void gg16 ::foo(){vfunc_called(this, "_ZN4gg163fooEv");}
+gg16 ::~gg16(){ note_dtor("gg16", this);} // tgen
+gg16 ::gg16(){ note_ctor("gg16", this);} // tgen
+
+static void Test_gg16()
+{
+ extern Class_Descriptor cd_gg16;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg16, buf);
+ gg16 *dp, &lv = *(dp=new (buf) gg16());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg16)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg16)");
+ check_base_class_offset(lv, (aa16*)(ee16*), ABISELECT(40,24), "gg16");
+ check_base_class_offset(lv, (bb16*)(ee16*), ABISELECT(56,32), "gg16");
+ check_base_class_offset(lv, (ee16*), ABISELECT(40,24), "gg16");
+ check_base_class_offset(lv, (cc16*)(ff16*), 0, "gg16");
+ check_base_class_offset(lv, (dd16*)(ff16*), ABISELECT(16,8), "gg16");
+ check_base_class_offset(lv, (ff16*), 0, "gg16");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg16.g");
+ test_class_info(&lv, &cd_gg16);
+ dp->~gg16();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg16(Test_gg16, "gg16", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg16C1Ev();
+extern void _ZN4gg16D1Ev();
+Name_Map name_map_gg16[] = {
+ NSPAIR(_ZN4gg16C1Ev),
+ NSPAIR(_ZN4gg16D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa16;
+extern VTBL_ENTRY _ZTI4aa16[];
+extern VTBL_ENTRY _ZTV4aa16[];
+extern Class_Descriptor cd_bb16;
+extern VTBL_ENTRY _ZTI4bb16[];
+extern VTBL_ENTRY _ZTV4bb16[];
+extern Class_Descriptor cd_ee16;
+extern VTBL_ENTRY _ZTI4ee16[];
+extern VTBL_ENTRY _ZTV4ee16[];
+extern Class_Descriptor cd_cc16;
+extern VTBL_ENTRY _ZTI4cc16[];
+extern VTBL_ENTRY _ZTV4cc16[];
+extern Class_Descriptor cd_dd16;
+extern VTBL_ENTRY _ZTI4dd16[];
+extern VTBL_ENTRY _ZTV4dd16[];
+extern Class_Descriptor cd_ff16;
+extern VTBL_ENTRY _ZTI4ff16[];
+extern VTBL_ENTRY _ZTV4ff16[];
+static Base_Class bases_gg16[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa16, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb16, ABISELECT(56,32), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee16, ABISELECT(40,24), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc16, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd16, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff16, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg16[];
+extern void _ZN4gg163fooEv();
+extern void ABISELECT(_ZThn16_N4gg163fooEv,_ZThn8_N4gg163fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg163fooEv,_ZTv0_n12_N4gg163fooEv)();
+extern void ABISELECT(_ZThn40_N4gg163fooEv,_ZThn24_N4gg163fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg163fooEv,_ZTvn8_n12_N4gg163fooEv)();
+static VTBL_ENTRY vtc_gg16[] = {
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg16[0]),
+ (VTBL_ENTRY)&_ZN4gg163fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg16[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg163fooEv,_ZThn8_N4gg163fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg16[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg163fooEv,_ZTv0_n12_N4gg163fooEv),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg16[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg163fooEv,_ZTvn8_n12_N4gg163fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg16[];
+static VTT_ENTRY vtt_gg16[] = {
+ {&(_ZTV4gg16[3]), 3,14},
+ {&(_ZTV4gg16[10]), 10,14},
+ {&(_ZTV4gg16[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI4gg16[];
+extern VTBL_ENTRY _ZTV4gg16[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg16[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg163fooEv,_ZTv0_n12_N4gg163fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg163fooEv,_ZThn24_N4gg163fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg16 = { "gg16", // class name
+ bases_gg16, 6,
+ &(vtc_gg16[0]), // expected_vtbl_contents
+ &(vtt_gg16[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg16),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg16),14, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg16),3, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa17 {
+ int a;
+ aa17(); // _ZN4aa17C1Ev
+ virtual void foo(); // _ZN4aa173fooEv
+ ~aa17(); // tgen
+};
+//SIG(-1 aa17) C1{ v1 Fi}
+
+
+ aa17 ::aa17(){ note_ctor("aa17", this);}
+void aa17 ::foo(){vfunc_called(this, "_ZN4aa173fooEv");}
+aa17 ::~aa17(){ note_dtor("aa17", this);} // tgen
+
+static void Test_aa17()
+{
+ extern Class_Descriptor cd_aa17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa17, buf);
+ aa17 *dp, &lv = *(dp=new (buf) aa17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa17)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa17.a");
+ test_class_info(&lv, &cd_aa17);
+ dp->~aa17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa17(Test_aa17, "aa17", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa17C1Ev();
+extern void _ZN4aa17D1Ev();
+Name_Map name_map_aa17[] = {
+ NSPAIR(_ZN4aa17C1Ev),
+ NSPAIR(_ZN4aa17D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa17[];
+extern void _ZN4aa173fooEv();
+static VTBL_ENTRY vtc_aa17[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa17[0]),
+ (VTBL_ENTRY)&_ZN4aa173fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa17[];
+extern VTBL_ENTRY _ZTV4aa17[];
+Class_Descriptor cd_aa17 = { "aa17", // class name
+ 0,0,//no base classes
+ &(vtc_aa17[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa17),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa17),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb17 {
+ int b;
+ bb17(); // _ZN4bb17C1Ev
+ virtual void foo(); // _ZN4bb173fooEv
+ ~bb17(); // tgen
+};
+//SIG(-1 bb17) C1{ v1 Fi}
+
+
+ bb17 ::bb17(){ note_ctor("bb17", this);}
+void bb17 ::foo(){vfunc_called(this, "_ZN4bb173fooEv");}
+bb17 ::~bb17(){ note_dtor("bb17", this);} // tgen
+
+static void Test_bb17()
+{
+ extern Class_Descriptor cd_bb17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb17, buf);
+ bb17 *dp, &lv = *(dp=new (buf) bb17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb17)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb17.b");
+ test_class_info(&lv, &cd_bb17);
+ dp->~bb17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb17(Test_bb17, "bb17", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb17C1Ev();
+extern void _ZN4bb17D1Ev();
+Name_Map name_map_bb17[] = {
+ NSPAIR(_ZN4bb17C1Ev),
+ NSPAIR(_ZN4bb17D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb17[];
+extern void _ZN4bb173fooEv();
+static VTBL_ENTRY vtc_bb17[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb17[0]),
+ (VTBL_ENTRY)&_ZN4bb173fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb17[];
+extern VTBL_ENTRY _ZTV4bb17[];
+Class_Descriptor cd_bb17 = { "bb17", // class name
+ 0,0,//no base classes
+ &(vtc_bb17[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb17),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb17),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc17 {
+ int c;
+ cc17(); // _ZN4cc17C1Ev
+ virtual void foo(); // _ZN4cc173fooEv
+ ~cc17(); // tgen
+};
+//SIG(-1 cc17) C1{ v1 Fi}
+
+
+ cc17 ::cc17(){ note_ctor("cc17", this);}
+void cc17 ::foo(){vfunc_called(this, "_ZN4cc173fooEv");}
+cc17 ::~cc17(){ note_dtor("cc17", this);} // tgen
+
+static void Test_cc17()
+{
+ extern Class_Descriptor cd_cc17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc17, buf);
+ cc17 *dp, &lv = *(dp=new (buf) cc17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc17)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc17.c");
+ test_class_info(&lv, &cd_cc17);
+ dp->~cc17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc17(Test_cc17, "cc17", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc17C1Ev();
+extern void _ZN4cc17D1Ev();
+Name_Map name_map_cc17[] = {
+ NSPAIR(_ZN4cc17C1Ev),
+ NSPAIR(_ZN4cc17D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc17[];
+extern void _ZN4cc173fooEv();
+static VTBL_ENTRY vtc_cc17[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc17[0]),
+ (VTBL_ENTRY)&_ZN4cc173fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc17[];
+extern VTBL_ENTRY _ZTV4cc17[];
+Class_Descriptor cd_cc17 = { "cc17", // class name
+ 0,0,//no base classes
+ &(vtc_cc17[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc17),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc17),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd17 {
+ int d;
+ dd17(); // _ZN4dd17C1Ev
+ virtual void foo(); // _ZN4dd173fooEv
+ ~dd17(); // tgen
+};
+//SIG(-1 dd17) C1{ v1 Fi}
+
+
+ dd17 ::dd17(){ note_ctor("dd17", this);}
+void dd17 ::foo(){vfunc_called(this, "_ZN4dd173fooEv");}
+dd17 ::~dd17(){ note_dtor("dd17", this);} // tgen
+
+static void Test_dd17()
+{
+ extern Class_Descriptor cd_dd17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd17, buf);
+ dd17 *dp, &lv = *(dp=new (buf) dd17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd17)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd17.d");
+ test_class_info(&lv, &cd_dd17);
+ dp->~dd17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd17(Test_dd17, "dd17", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd17C1Ev();
+extern void _ZN4dd17D1Ev();
+Name_Map name_map_dd17[] = {
+ NSPAIR(_ZN4dd17C1Ev),
+ NSPAIR(_ZN4dd17D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd17[];
+extern void _ZN4dd173fooEv();
+static VTBL_ENTRY vtc_dd17[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd17[0]),
+ (VTBL_ENTRY)&_ZN4dd173fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd17[];
+extern VTBL_ENTRY _ZTV4dd17[];
+Class_Descriptor cd_dd17 = { "dd17", // class name
+ 0,0,//no base classes
+ &(vtc_dd17[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd17),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd17),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17 : virtual aa17 , bb17 {
+ int e;
+ ee17(const ABISELECT(__tsi64,int) *const *); // _ZN4ee17C2Ev
+ virtual void foo(); // _ZN4ee173fooEv
+ ~ee17(); // tgen
+ ee17(); // tgen
+};
+//SIG(-1 ee17) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee17 ::ee17(const ABISELECT(__tsi64,int) *const *){}
+void ee17 ::foo(){vfunc_called(this, "_ZN4ee173fooEv");}
+ee17 ::~ee17(){ note_dtor("ee17", this);} // tgen
+ee17 ::ee17(){ note_ctor("ee17", this);} // tgen
+
+static void Test_ee17()
+{
+ extern Class_Descriptor cd_ee17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee17, buf);
+ ee17 *dp, &lv = *(dp=new (buf) ee17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17)");
+ check_base_class_offset(lv, (aa17*), ABISELECT(16,12), "ee17");
+ check_base_class_offset(lv, (bb17*), 0, "ee17");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee17.e");
+ test_class_info(&lv, &cd_ee17);
+ dp->~ee17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17(Test_ee17, "ee17", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee17C1Ev();
+extern void _ZN4ee17D1Ev();
+Name_Map name_map_ee17[] = {
+ NSPAIR(_ZN4ee17C1Ev),
+ NSPAIR(_ZN4ee17D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa17;
+extern VTBL_ENTRY _ZTI4aa17[];
+extern VTBL_ENTRY _ZTV4aa17[];
+extern Class_Descriptor cd_bb17;
+extern VTBL_ENTRY _ZTI4bb17[];
+extern VTBL_ENTRY _ZTV4bb17[];
+static Base_Class bases_ee17[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa17, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb17, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee17[];
+extern void _ZN4ee173fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee173fooEv,_ZTv0_n12_N4ee173fooEv)();
+extern void ABISELECT(_ZThn16_N4ee173fooEv,_ZThn12_N4ee173fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee17[0]),
+ (VTBL_ENTRY)&_ZN4ee173fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee17[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee173fooEv,_ZTv0_n12_N4ee173fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee17[];
+static VTT_ENTRY vtt_ee17[] = {
+ {&(_ZTV4ee17[3]), 3,8},
+ {&(_ZTV4ee17[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee17[];
+extern VTBL_ENTRY _ZTV4ee17[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee17[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee173fooEv,_ZTv0_n12_N4ee173fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee173fooEv,_ZThn12_N4ee173fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17 = { "ee17", // class name
+ bases_ee17, 2,
+ &(vtc_ee17[0]), // expected_vtbl_contents
+ &(vtt_ee17[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee17),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee17),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee17),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff17 : cc17 , dd17 {
+ int f;
+ ff17(); // _ZN4ff17C1Ev
+ virtual void foo(); // _ZN4ff173fooEv
+ ~ff17(); // tgen
+};
+//SIG(-1 ff17) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff17 ::ff17(){ note_ctor("ff17", this);}
+void ff17 ::foo(){vfunc_called(this, "_ZN4ff173fooEv");}
+ff17 ::~ff17(){ note_dtor("ff17", this);} // tgen
+
+static void Test_ff17()
+{
+ extern Class_Descriptor cd_ff17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff17, buf);
+ ff17 *dp, &lv = *(dp=new (buf) ff17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff17)");
+ check_base_class_offset(lv, (cc17*), 0, "ff17");
+ check_base_class_offset(lv, (dd17*), ABISELECT(16,8), "ff17");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff17.f");
+ test_class_info(&lv, &cd_ff17);
+ dp->~ff17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff17(Test_ff17, "ff17", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff17C1Ev();
+extern void _ZN4ff17D1Ev();
+Name_Map name_map_ff17[] = {
+ NSPAIR(_ZN4ff17C1Ev),
+ NSPAIR(_ZN4ff17D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc17;
+extern VTBL_ENTRY _ZTI4cc17[];
+extern VTBL_ENTRY _ZTV4cc17[];
+extern Class_Descriptor cd_dd17;
+extern VTBL_ENTRY _ZTI4dd17[];
+extern VTBL_ENTRY _ZTV4dd17[];
+static Base_Class bases_ff17[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc17, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd17, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff17[];
+extern void _ZN4ff173fooEv();
+extern void ABISELECT(_ZThn16_N4ff173fooEv,_ZThn8_N4ff173fooEv)();
+static VTBL_ENTRY vtc_ff17[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff17[0]),
+ (VTBL_ENTRY)&_ZN4ff173fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff17[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff173fooEv,_ZThn8_N4ff173fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff17[];
+extern VTBL_ENTRY _ZTV4ff17[];
+Class_Descriptor cd_ff17 = { "ff17", // class name
+ bases_ff17, 2,
+ &(vtc_ff17[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff17),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff17),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg17 : virtual ee17 , ff17 {
+ int g;
+ gg17(const ABISELECT(__tsi64,int) *const *); // _ZN4gg17C2Ev
+ virtual void foo(); // _ZN4gg173fooEv
+ ~gg17(); // tgen
+ gg17(); // tgen
+};
+//SIG(1 gg17) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg17 ::gg17(const ABISELECT(__tsi64,int) *const *){}
+void gg17 ::foo(){vfunc_called(this, "_ZN4gg173fooEv");}
+gg17 ::~gg17(){ note_dtor("gg17", this);} // tgen
+gg17 ::gg17(){ note_ctor("gg17", this);} // tgen
+
+static void Test_gg17()
+{
+ extern Class_Descriptor cd_gg17;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg17, buf);
+ gg17 *dp, &lv = *(dp=new (buf) gg17());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg17)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg17)");
+ check_base_class_offset(lv, (aa17*)(ee17*), ABISELECT(56,36), "gg17");
+ check_base_class_offset(lv, (bb17*)(ee17*), ABISELECT(40,24), "gg17");
+ check_base_class_offset(lv, (ee17*), ABISELECT(40,24), "gg17");
+ check_base_class_offset(lv, (cc17*)(ff17*), 0, "gg17");
+ check_base_class_offset(lv, (dd17*)(ff17*), ABISELECT(16,8), "gg17");
+ check_base_class_offset(lv, (ff17*), 0, "gg17");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg17.g");
+ test_class_info(&lv, &cd_gg17);
+ dp->~gg17();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg17(Test_gg17, "gg17", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg17C1Ev();
+extern void _ZN4gg17D1Ev();
+Name_Map name_map_gg17[] = {
+ NSPAIR(_ZN4gg17C1Ev),
+ NSPAIR(_ZN4gg17D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa17;
+extern VTBL_ENTRY _ZTI4aa17[];
+extern VTBL_ENTRY _ZTV4aa17[];
+extern Class_Descriptor cd_bb17;
+extern VTBL_ENTRY _ZTI4bb17[];
+extern VTBL_ENTRY _ZTV4bb17[];
+extern Class_Descriptor cd_ee17;
+extern VTBL_ENTRY _ZTI4ee17[];
+extern VTBL_ENTRY _ZTV4ee17[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee17[];
+extern Class_Descriptor cd_cc17;
+extern VTBL_ENTRY _ZTI4cc17[];
+extern VTBL_ENTRY _ZTV4cc17[];
+extern Class_Descriptor cd_dd17;
+extern VTBL_ENTRY _ZTI4dd17[];
+extern VTBL_ENTRY _ZTV4dd17[];
+extern Class_Descriptor cd_ff17;
+extern VTBL_ENTRY _ZTI4ff17[];
+extern VTBL_ENTRY _ZTV4ff17[];
+static Base_Class bases_gg17[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa17, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb17, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee17, ABISELECT(40,24), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc17, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd17, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff17, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg17[];
+extern void _ZN4gg173fooEv();
+extern void ABISELECT(_ZThn16_N4gg173fooEv,_ZThn8_N4gg173fooEv)();
+extern void ABISELECT(_ZTv0_n32_N4gg173fooEv,_ZTv0_n16_N4gg173fooEv)();
+extern void ABISELECT(_ZThn40_N4gg173fooEv,_ZThn24_N4gg173fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg173fooEv,_ZTv0_n12_N4gg173fooEv)();
+extern void ABISELECT(_ZThn56_N4gg173fooEv,_ZThn36_N4gg173fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg17[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg17[0]),
+ (VTBL_ENTRY)&_ZN4gg173fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg17[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg173fooEv,_ZThn8_N4gg173fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg17[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg173fooEv,_ZTv0_n16_N4gg173fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg17[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg173fooEv,_ZTv0_n12_N4gg173fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg17[];
+extern void _ZN4ee173fooEv();
+static VTBL_ENTRY _tg__ZTV4ee17__4gg17[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee17[0]),
+ (VTBL_ENTRY)&_ZN4ee173fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee173fooEv,_ZTv0_n12_N4ee173fooEv)();
+extern void ABISELECT(_ZThn16_N4ee173fooEv,_ZThn12_N4ee173fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa17__4ee17__4gg17[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee17[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee173fooEv,_ZTv0_n12_N4ee173fooEv),
+};
+static VTT_ENTRY vtt_gg17[] = {
+ {&(_ZTV4gg17[4]), 4,17},
+ {&(_ZTV4gg17[12]), 12,17},
+ {&(_ZTV4gg17[16]), 16,17},
+ {&(_tg__ZTV4ee17__4gg17[3]), 3,4},
+ {&(_tg__ZTV4aa17__4ee17__4gg17[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg17[];
+extern VTBL_ENTRY _ZTV4gg17[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg17[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee173fooEv,_ZTv0_n12_N4ee173fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee173fooEv,_ZThn12_N4ee173fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg173fooEv,_ZTv0_n12_N4gg173fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg173fooEv,_ZThn36_N4gg173fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg173fooEv,_ZTv0_n16_N4gg173fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg173fooEv,_ZThn24_N4gg173fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg17 = { "gg17", // class name
+ bases_gg17, 6,
+ &(vtc_gg17[0]), // expected_vtbl_contents
+ &(vtt_gg17[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg17),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg17),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg17),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa18 {
+ int a;
+ aa18(); // _ZN4aa18C1Ev
+ virtual void foo(); // _ZN4aa183fooEv
+ ~aa18(); // tgen
+};
+//SIG(-1 aa18) C1{ v1 Fi}
+
+
+ aa18 ::aa18(){ note_ctor("aa18", this);}
+void aa18 ::foo(){vfunc_called(this, "_ZN4aa183fooEv");}
+aa18 ::~aa18(){ note_dtor("aa18", this);} // tgen
+
+static void Test_aa18()
+{
+ extern Class_Descriptor cd_aa18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa18, buf);
+ aa18 *dp, &lv = *(dp=new (buf) aa18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa18)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa18.a");
+ test_class_info(&lv, &cd_aa18);
+ dp->~aa18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa18(Test_aa18, "aa18", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa18C1Ev();
+extern void _ZN4aa18D1Ev();
+Name_Map name_map_aa18[] = {
+ NSPAIR(_ZN4aa18C1Ev),
+ NSPAIR(_ZN4aa18D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa18[];
+extern void _ZN4aa183fooEv();
+static VTBL_ENTRY vtc_aa18[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa18[0]),
+ (VTBL_ENTRY)&_ZN4aa183fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa18[];
+extern VTBL_ENTRY _ZTV4aa18[];
+Class_Descriptor cd_aa18 = { "aa18", // class name
+ 0,0,//no base classes
+ &(vtc_aa18[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa18),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa18),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb18 {
+ int b;
+ bb18(); // _ZN4bb18C1Ev
+ virtual void foo(); // _ZN4bb183fooEv
+ ~bb18(); // tgen
+};
+//SIG(-1 bb18) C1{ v1 Fi}
+
+
+ bb18 ::bb18(){ note_ctor("bb18", this);}
+void bb18 ::foo(){vfunc_called(this, "_ZN4bb183fooEv");}
+bb18 ::~bb18(){ note_dtor("bb18", this);} // tgen
+
+static void Test_bb18()
+{
+ extern Class_Descriptor cd_bb18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb18, buf);
+ bb18 *dp, &lv = *(dp=new (buf) bb18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb18)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb18.b");
+ test_class_info(&lv, &cd_bb18);
+ dp->~bb18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb18(Test_bb18, "bb18", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb18C1Ev();
+extern void _ZN4bb18D1Ev();
+Name_Map name_map_bb18[] = {
+ NSPAIR(_ZN4bb18C1Ev),
+ NSPAIR(_ZN4bb18D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb18[];
+extern void _ZN4bb183fooEv();
+static VTBL_ENTRY vtc_bb18[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb18[0]),
+ (VTBL_ENTRY)&_ZN4bb183fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb18[];
+extern VTBL_ENTRY _ZTV4bb18[];
+Class_Descriptor cd_bb18 = { "bb18", // class name
+ 0,0,//no base classes
+ &(vtc_bb18[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb18),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb18),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc18 {
+ int c;
+ cc18(); // _ZN4cc18C1Ev
+ virtual void foo(); // _ZN4cc183fooEv
+ ~cc18(); // tgen
+};
+//SIG(-1 cc18) C1{ v1 Fi}
+
+
+ cc18 ::cc18(){ note_ctor("cc18", this);}
+void cc18 ::foo(){vfunc_called(this, "_ZN4cc183fooEv");}
+cc18 ::~cc18(){ note_dtor("cc18", this);} // tgen
+
+static void Test_cc18()
+{
+ extern Class_Descriptor cd_cc18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc18, buf);
+ cc18 *dp, &lv = *(dp=new (buf) cc18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc18)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc18.c");
+ test_class_info(&lv, &cd_cc18);
+ dp->~cc18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc18(Test_cc18, "cc18", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc18C1Ev();
+extern void _ZN4cc18D1Ev();
+Name_Map name_map_cc18[] = {
+ NSPAIR(_ZN4cc18C1Ev),
+ NSPAIR(_ZN4cc18D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc18[];
+extern void _ZN4cc183fooEv();
+static VTBL_ENTRY vtc_cc18[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc18[0]),
+ (VTBL_ENTRY)&_ZN4cc183fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc18[];
+extern VTBL_ENTRY _ZTV4cc18[];
+Class_Descriptor cd_cc18 = { "cc18", // class name
+ 0,0,//no base classes
+ &(vtc_cc18[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc18),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc18),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd18 {
+ int d;
+ dd18(); // _ZN4dd18C1Ev
+ virtual void foo(); // _ZN4dd183fooEv
+ ~dd18(); // tgen
+};
+//SIG(-1 dd18) C1{ v1 Fi}
+
+
+ dd18 ::dd18(){ note_ctor("dd18", this);}
+void dd18 ::foo(){vfunc_called(this, "_ZN4dd183fooEv");}
+dd18 ::~dd18(){ note_dtor("dd18", this);} // tgen
+
+static void Test_dd18()
+{
+ extern Class_Descriptor cd_dd18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd18, buf);
+ dd18 *dp, &lv = *(dp=new (buf) dd18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd18)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd18.d");
+ test_class_info(&lv, &cd_dd18);
+ dp->~dd18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd18(Test_dd18, "dd18", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd18C1Ev();
+extern void _ZN4dd18D1Ev();
+Name_Map name_map_dd18[] = {
+ NSPAIR(_ZN4dd18C1Ev),
+ NSPAIR(_ZN4dd18D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd18[];
+extern void _ZN4dd183fooEv();
+static VTBL_ENTRY vtc_dd18[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd18[0]),
+ (VTBL_ENTRY)&_ZN4dd183fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd18[];
+extern VTBL_ENTRY _ZTV4dd18[];
+Class_Descriptor cd_dd18 = { "dd18", // class name
+ 0,0,//no base classes
+ &(vtc_dd18[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd18),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd18),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee18 : aa18 , virtual bb18 {
+ int e;
+ ee18(const ABISELECT(__tsi64,int) *const *); // _ZN4ee18C2Ev
+ virtual void foo(); // _ZN4ee183fooEv
+ ~ee18(); // tgen
+ ee18(); // tgen
+};
+//SIG(-1 ee18) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee18 ::ee18(const ABISELECT(__tsi64,int) *const *){}
+void ee18 ::foo(){vfunc_called(this, "_ZN4ee183fooEv");}
+ee18 ::~ee18(){ note_dtor("ee18", this);} // tgen
+ee18 ::ee18(){ note_ctor("ee18", this);} // tgen
+
+static void Test_ee18()
+{
+ extern Class_Descriptor cd_ee18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee18, buf);
+ ee18 *dp, &lv = *(dp=new (buf) ee18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee18)");
+ check_base_class_offset(lv, (aa18*), 0, "ee18");
+ check_base_class_offset(lv, (bb18*), ABISELECT(16,12), "ee18");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee18.e");
+ test_class_info(&lv, &cd_ee18);
+ dp->~ee18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee18(Test_ee18, "ee18", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee18C1Ev();
+extern void _ZN4ee18D1Ev();
+Name_Map name_map_ee18[] = {
+ NSPAIR(_ZN4ee18C1Ev),
+ NSPAIR(_ZN4ee18D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa18;
+extern VTBL_ENTRY _ZTI4aa18[];
+extern VTBL_ENTRY _ZTV4aa18[];
+extern Class_Descriptor cd_bb18;
+extern VTBL_ENTRY _ZTI4bb18[];
+extern VTBL_ENTRY _ZTV4bb18[];
+static Base_Class bases_ee18[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa18, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb18, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee18[];
+extern void _ZN4ee183fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee183fooEv,_ZTv0_n12_N4ee183fooEv)();
+extern void ABISELECT(_ZThn16_N4ee183fooEv,_ZThn12_N4ee183fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee18[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee18[0]),
+ (VTBL_ENTRY)&_ZN4ee183fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee18[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee183fooEv,_ZTv0_n12_N4ee183fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee18[];
+static VTT_ENTRY vtt_ee18[] = {
+ {&(_ZTV4ee18[3]), 3,8},
+ {&(_ZTV4ee18[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee18[];
+extern VTBL_ENTRY _ZTV4ee18[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee18[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee183fooEv,_ZTv0_n12_N4ee183fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee183fooEv,_ZThn12_N4ee183fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee18 = { "ee18", // class name
+ bases_ee18, 2,
+ &(vtc_ee18[0]), // expected_vtbl_contents
+ &(vtt_ee18[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee18),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee18),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee18),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff18 : cc18 , dd18 {
+ int f;
+ ff18(); // _ZN4ff18C1Ev
+ virtual void foo(); // _ZN4ff183fooEv
+ ~ff18(); // tgen
+};
+//SIG(-1 ff18) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff18 ::ff18(){ note_ctor("ff18", this);}
+void ff18 ::foo(){vfunc_called(this, "_ZN4ff183fooEv");}
+ff18 ::~ff18(){ note_dtor("ff18", this);} // tgen
+
+static void Test_ff18()
+{
+ extern Class_Descriptor cd_ff18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff18, buf);
+ ff18 *dp, &lv = *(dp=new (buf) ff18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff18)");
+ check_base_class_offset(lv, (cc18*), 0, "ff18");
+ check_base_class_offset(lv, (dd18*), ABISELECT(16,8), "ff18");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff18.f");
+ test_class_info(&lv, &cd_ff18);
+ dp->~ff18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff18(Test_ff18, "ff18", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff18C1Ev();
+extern void _ZN4ff18D1Ev();
+Name_Map name_map_ff18[] = {
+ NSPAIR(_ZN4ff18C1Ev),
+ NSPAIR(_ZN4ff18D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc18;
+extern VTBL_ENTRY _ZTI4cc18[];
+extern VTBL_ENTRY _ZTV4cc18[];
+extern Class_Descriptor cd_dd18;
+extern VTBL_ENTRY _ZTI4dd18[];
+extern VTBL_ENTRY _ZTV4dd18[];
+static Base_Class bases_ff18[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc18, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd18, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff18[];
+extern void _ZN4ff183fooEv();
+extern void ABISELECT(_ZThn16_N4ff183fooEv,_ZThn8_N4ff183fooEv)();
+static VTBL_ENTRY vtc_ff18[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff18[0]),
+ (VTBL_ENTRY)&_ZN4ff183fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff18[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff183fooEv,_ZThn8_N4ff183fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff18[];
+extern VTBL_ENTRY _ZTV4ff18[];
+Class_Descriptor cd_ff18 = { "ff18", // class name
+ bases_ff18, 2,
+ &(vtc_ff18[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff18),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff18),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg18 : virtual ee18 , ff18 {
+ int g;
+ gg18(const ABISELECT(__tsi64,int) *const *); // _ZN4gg18C2Ev
+ virtual void foo(); // _ZN4gg183fooEv
+ ~gg18(); // tgen
+ gg18(); // tgen
+};
+//SIG(1 gg18) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg18 ::gg18(const ABISELECT(__tsi64,int) *const *){}
+void gg18 ::foo(){vfunc_called(this, "_ZN4gg183fooEv");}
+gg18 ::~gg18(){ note_dtor("gg18", this);} // tgen
+gg18 ::gg18(){ note_ctor("gg18", this);} // tgen
+
+static void Test_gg18()
+{
+ extern Class_Descriptor cd_gg18;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg18, buf);
+ gg18 *dp, &lv = *(dp=new (buf) gg18());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg18)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg18)");
+ check_base_class_offset(lv, (aa18*)(ee18*), ABISELECT(40,24), "gg18");
+ check_base_class_offset(lv, (bb18*)(ee18*), ABISELECT(56,36), "gg18");
+ check_base_class_offset(lv, (ee18*), ABISELECT(40,24), "gg18");
+ check_base_class_offset(lv, (cc18*)(ff18*), 0, "gg18");
+ check_base_class_offset(lv, (dd18*)(ff18*), ABISELECT(16,8), "gg18");
+ check_base_class_offset(lv, (ff18*), 0, "gg18");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg18.g");
+ test_class_info(&lv, &cd_gg18);
+ dp->~gg18();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg18(Test_gg18, "gg18", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg18C1Ev();
+extern void _ZN4gg18D1Ev();
+Name_Map name_map_gg18[] = {
+ NSPAIR(_ZN4gg18C1Ev),
+ NSPAIR(_ZN4gg18D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa18;
+extern VTBL_ENTRY _ZTI4aa18[];
+extern VTBL_ENTRY _ZTV4aa18[];
+extern Class_Descriptor cd_bb18;
+extern VTBL_ENTRY _ZTI4bb18[];
+extern VTBL_ENTRY _ZTV4bb18[];
+extern Class_Descriptor cd_ee18;
+extern VTBL_ENTRY _ZTI4ee18[];
+extern VTBL_ENTRY _ZTV4ee18[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee18[];
+extern Class_Descriptor cd_cc18;
+extern VTBL_ENTRY _ZTI4cc18[];
+extern VTBL_ENTRY _ZTV4cc18[];
+extern Class_Descriptor cd_dd18;
+extern VTBL_ENTRY _ZTI4dd18[];
+extern VTBL_ENTRY _ZTV4dd18[];
+extern Class_Descriptor cd_ff18;
+extern VTBL_ENTRY _ZTI4ff18[];
+extern VTBL_ENTRY _ZTV4ff18[];
+static Base_Class bases_gg18[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa18, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb18, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee18, ABISELECT(40,24), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc18, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd18, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff18, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg18[];
+extern void _ZN4gg183fooEv();
+extern void ABISELECT(_ZThn16_N4gg183fooEv,_ZThn8_N4gg183fooEv)();
+extern void ABISELECT(_ZTv0_n32_N4gg183fooEv,_ZTv0_n16_N4gg183fooEv)();
+extern void ABISELECT(_ZThn40_N4gg183fooEv,_ZThn24_N4gg183fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg183fooEv,_ZTv0_n12_N4gg183fooEv)();
+extern void ABISELECT(_ZThn56_N4gg183fooEv,_ZThn36_N4gg183fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg18[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg18[0]),
+ (VTBL_ENTRY)&_ZN4gg183fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg18[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg183fooEv,_ZThn8_N4gg183fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg18[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg183fooEv,_ZTv0_n16_N4gg183fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg18[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg183fooEv,_ZTv0_n12_N4gg183fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg18[];
+extern void _ZN4ee183fooEv();
+static VTBL_ENTRY _tg__ZTV4ee18__4gg18[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee18[0]),
+ (VTBL_ENTRY)&_ZN4ee183fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee183fooEv,_ZTv0_n12_N4ee183fooEv)();
+extern void ABISELECT(_ZThn16_N4ee183fooEv,_ZThn12_N4ee183fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb18__4ee18__4gg18[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee18[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee183fooEv,_ZTv0_n12_N4ee183fooEv),
+};
+static VTT_ENTRY vtt_gg18[] = {
+ {&(_ZTV4gg18[4]), 4,17},
+ {&(_ZTV4gg18[12]), 12,17},
+ {&(_ZTV4gg18[16]), 16,17},
+ {&(_tg__ZTV4ee18__4gg18[3]), 3,4},
+ {&(_tg__ZTV4bb18__4ee18__4gg18[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg18[];
+extern VTBL_ENTRY _ZTV4gg18[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg18[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee183fooEv,_ZTv0_n12_N4ee183fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee183fooEv,_ZThn12_N4ee183fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg183fooEv,_ZTv0_n12_N4gg183fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg183fooEv,_ZThn36_N4gg183fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg183fooEv,_ZTv0_n16_N4gg183fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg183fooEv,_ZThn24_N4gg183fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg18 = { "gg18", // class name
+ bases_gg18, 6,
+ &(vtc_gg18[0]), // expected_vtbl_contents
+ &(vtt_gg18[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg18),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg18),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg18),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa19 {
+ int a;
+ aa19(); // _ZN4aa19C1Ev
+ virtual void foo(); // _ZN4aa193fooEv
+ ~aa19(); // tgen
+};
+//SIG(-1 aa19) C1{ v1 Fi}
+
+
+ aa19 ::aa19(){ note_ctor("aa19", this);}
+void aa19 ::foo(){vfunc_called(this, "_ZN4aa193fooEv");}
+aa19 ::~aa19(){ note_dtor("aa19", this);} // tgen
+
+static void Test_aa19()
+{
+ extern Class_Descriptor cd_aa19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa19, buf);
+ aa19 *dp, &lv = *(dp=new (buf) aa19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa19)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa19.a");
+ test_class_info(&lv, &cd_aa19);
+ dp->~aa19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa19(Test_aa19, "aa19", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa19C1Ev();
+extern void _ZN4aa19D1Ev();
+Name_Map name_map_aa19[] = {
+ NSPAIR(_ZN4aa19C1Ev),
+ NSPAIR(_ZN4aa19D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa19[];
+extern void _ZN4aa193fooEv();
+static VTBL_ENTRY vtc_aa19[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa19[0]),
+ (VTBL_ENTRY)&_ZN4aa193fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa19[];
+extern VTBL_ENTRY _ZTV4aa19[];
+Class_Descriptor cd_aa19 = { "aa19", // class name
+ 0,0,//no base classes
+ &(vtc_aa19[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa19),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa19),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb19 {
+ int b;
+ bb19(); // _ZN4bb19C1Ev
+ virtual void foo(); // _ZN4bb193fooEv
+ ~bb19(); // tgen
+};
+//SIG(-1 bb19) C1{ v1 Fi}
+
+
+ bb19 ::bb19(){ note_ctor("bb19", this);}
+void bb19 ::foo(){vfunc_called(this, "_ZN4bb193fooEv");}
+bb19 ::~bb19(){ note_dtor("bb19", this);} // tgen
+
+static void Test_bb19()
+{
+ extern Class_Descriptor cd_bb19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb19, buf);
+ bb19 *dp, &lv = *(dp=new (buf) bb19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb19)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb19.b");
+ test_class_info(&lv, &cd_bb19);
+ dp->~bb19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb19(Test_bb19, "bb19", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb19C1Ev();
+extern void _ZN4bb19D1Ev();
+Name_Map name_map_bb19[] = {
+ NSPAIR(_ZN4bb19C1Ev),
+ NSPAIR(_ZN4bb19D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb19[];
+extern void _ZN4bb193fooEv();
+static VTBL_ENTRY vtc_bb19[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb19[0]),
+ (VTBL_ENTRY)&_ZN4bb193fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb19[];
+extern VTBL_ENTRY _ZTV4bb19[];
+Class_Descriptor cd_bb19 = { "bb19", // class name
+ 0,0,//no base classes
+ &(vtc_bb19[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb19),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb19),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc19 {
+ int c;
+ cc19(); // _ZN4cc19C1Ev
+ virtual void foo(); // _ZN4cc193fooEv
+ ~cc19(); // tgen
+};
+//SIG(-1 cc19) C1{ v1 Fi}
+
+
+ cc19 ::cc19(){ note_ctor("cc19", this);}
+void cc19 ::foo(){vfunc_called(this, "_ZN4cc193fooEv");}
+cc19 ::~cc19(){ note_dtor("cc19", this);} // tgen
+
+static void Test_cc19()
+{
+ extern Class_Descriptor cd_cc19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc19, buf);
+ cc19 *dp, &lv = *(dp=new (buf) cc19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc19)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc19.c");
+ test_class_info(&lv, &cd_cc19);
+ dp->~cc19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc19(Test_cc19, "cc19", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc19C1Ev();
+extern void _ZN4cc19D1Ev();
+Name_Map name_map_cc19[] = {
+ NSPAIR(_ZN4cc19C1Ev),
+ NSPAIR(_ZN4cc19D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc19[];
+extern void _ZN4cc193fooEv();
+static VTBL_ENTRY vtc_cc19[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc19[0]),
+ (VTBL_ENTRY)&_ZN4cc193fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc19[];
+extern VTBL_ENTRY _ZTV4cc19[];
+Class_Descriptor cd_cc19 = { "cc19", // class name
+ 0,0,//no base classes
+ &(vtc_cc19[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc19),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc19),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd19 {
+ int d;
+ dd19(); // _ZN4dd19C1Ev
+ virtual void foo(); // _ZN4dd193fooEv
+ ~dd19(); // tgen
+};
+//SIG(-1 dd19) C1{ v1 Fi}
+
+
+ dd19 ::dd19(){ note_ctor("dd19", this);}
+void dd19 ::foo(){vfunc_called(this, "_ZN4dd193fooEv");}
+dd19 ::~dd19(){ note_dtor("dd19", this);} // tgen
+
+static void Test_dd19()
+{
+ extern Class_Descriptor cd_dd19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd19, buf);
+ dd19 *dp, &lv = *(dp=new (buf) dd19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd19)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd19.d");
+ test_class_info(&lv, &cd_dd19);
+ dp->~dd19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd19(Test_dd19, "dd19", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd19C1Ev();
+extern void _ZN4dd19D1Ev();
+Name_Map name_map_dd19[] = {
+ NSPAIR(_ZN4dd19C1Ev),
+ NSPAIR(_ZN4dd19D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd19[];
+extern void _ZN4dd193fooEv();
+static VTBL_ENTRY vtc_dd19[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd19[0]),
+ (VTBL_ENTRY)&_ZN4dd193fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd19[];
+extern VTBL_ENTRY _ZTV4dd19[];
+Class_Descriptor cd_dd19 = { "dd19", // class name
+ 0,0,//no base classes
+ &(vtc_dd19[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd19),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd19),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee19 : virtual aa19 , virtual bb19 {
+ int e;
+ ee19(const ABISELECT(__tsi64,int) *const *); // _ZN4ee19C2Ev
+ virtual void foo(); // _ZN4ee193fooEv
+ ~ee19(); // tgen
+ ee19(); // tgen
+};
+//SIG(-1 ee19) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee19 ::ee19(const ABISELECT(__tsi64,int) *const *){}
+void ee19 ::foo(){vfunc_called(this, "_ZN4ee193fooEv");}
+ee19 ::~ee19(){ note_dtor("ee19", this);} // tgen
+ee19 ::ee19(){ note_ctor("ee19", this);} // tgen
+
+static void Test_ee19()
+{
+ extern Class_Descriptor cd_ee19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee19, buf);
+ ee19 *dp, &lv = *(dp=new (buf) ee19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee19)");
+ check_base_class_offset(lv, (aa19*), ABISELECT(16,8), "ee19");
+ check_base_class_offset(lv, (bb19*), ABISELECT(32,16), "ee19");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee19.e");
+ test_class_info(&lv, &cd_ee19);
+ dp->~ee19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee19(Test_ee19, "ee19", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee19C1Ev();
+extern void _ZN4ee19D1Ev();
+Name_Map name_map_ee19[] = {
+ NSPAIR(_ZN4ee19C1Ev),
+ NSPAIR(_ZN4ee19D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa19;
+extern VTBL_ENTRY _ZTI4aa19[];
+extern VTBL_ENTRY _ZTV4aa19[];
+extern Class_Descriptor cd_bb19;
+extern VTBL_ENTRY _ZTI4bb19[];
+extern VTBL_ENTRY _ZTV4bb19[];
+static Base_Class bases_ee19[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa19, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb19, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee19[];
+extern void _ZN4ee193fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv)();
+extern void ABISELECT(_ZThn16_N4ee193fooEv,_ZThn8_N4ee193fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv)();
+extern void ABISELECT(_ZThn32_N4ee193fooEv,_ZThn16_N4ee193fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee19[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee19[0]),
+ (VTBL_ENTRY)&_ZN4ee193fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee19[];
+static VTT_ENTRY vtt_ee19[] = {
+ {&(_ZTV4ee19[4]), 4,13},
+ {&(_ZTV4ee19[8]), 8,13},
+ {&(_ZTV4ee19[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee19[];
+extern VTBL_ENTRY _ZTV4ee19[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee19[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee193fooEv,_ZThn16_N4ee193fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee193fooEv,_ZThn8_N4ee193fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee19 = { "ee19", // class name
+ bases_ee19, 2,
+ &(vtc_ee19[0]), // expected_vtbl_contents
+ &(vtt_ee19[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee19),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee19),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee19),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff19 : cc19 , dd19 {
+ int f;
+ ff19(); // _ZN4ff19C1Ev
+ virtual void foo(); // _ZN4ff193fooEv
+ ~ff19(); // tgen
+};
+//SIG(-1 ff19) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff19 ::ff19(){ note_ctor("ff19", this);}
+void ff19 ::foo(){vfunc_called(this, "_ZN4ff193fooEv");}
+ff19 ::~ff19(){ note_dtor("ff19", this);} // tgen
+
+static void Test_ff19()
+{
+ extern Class_Descriptor cd_ff19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff19, buf);
+ ff19 *dp, &lv = *(dp=new (buf) ff19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff19)");
+ check_base_class_offset(lv, (cc19*), 0, "ff19");
+ check_base_class_offset(lv, (dd19*), ABISELECT(16,8), "ff19");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff19.f");
+ test_class_info(&lv, &cd_ff19);
+ dp->~ff19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff19(Test_ff19, "ff19", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff19C1Ev();
+extern void _ZN4ff19D1Ev();
+Name_Map name_map_ff19[] = {
+ NSPAIR(_ZN4ff19C1Ev),
+ NSPAIR(_ZN4ff19D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc19;
+extern VTBL_ENTRY _ZTI4cc19[];
+extern VTBL_ENTRY _ZTV4cc19[];
+extern Class_Descriptor cd_dd19;
+extern VTBL_ENTRY _ZTI4dd19[];
+extern VTBL_ENTRY _ZTV4dd19[];
+static Base_Class bases_ff19[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc19, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd19, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff19[];
+extern void _ZN4ff193fooEv();
+extern void ABISELECT(_ZThn16_N4ff193fooEv,_ZThn8_N4ff193fooEv)();
+static VTBL_ENTRY vtc_ff19[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff19[0]),
+ (VTBL_ENTRY)&_ZN4ff193fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff193fooEv,_ZThn8_N4ff193fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff19[];
+extern VTBL_ENTRY _ZTV4ff19[];
+Class_Descriptor cd_ff19 = { "ff19", // class name
+ bases_ff19, 2,
+ &(vtc_ff19[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff19),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff19),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg19 : virtual ee19 , ff19 {
+ int g;
+ gg19(const ABISELECT(__tsi64,int) *const *); // _ZN4gg19C2Ev
+ virtual void foo(); // _ZN4gg193fooEv
+ ~gg19(); // tgen
+ gg19(); // tgen
+};
+//SIG(1 gg19) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg19 ::gg19(const ABISELECT(__tsi64,int) *const *){}
+void gg19 ::foo(){vfunc_called(this, "_ZN4gg193fooEv");}
+gg19 ::~gg19(){ note_dtor("gg19", this);} // tgen
+gg19 ::gg19(){ note_ctor("gg19", this);} // tgen
+
+static void Test_gg19()
+{
+ extern Class_Descriptor cd_gg19;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg19, buf);
+ gg19 *dp, &lv = *(dp=new (buf) gg19());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg19)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg19)");
+ check_base_class_offset(lv, (aa19*)(ee19*), ABISELECT(56,32), "gg19");
+ check_base_class_offset(lv, (bb19*)(ee19*), ABISELECT(72,40), "gg19");
+ check_base_class_offset(lv, (ee19*), ABISELECT(40,24), "gg19");
+ check_base_class_offset(lv, (cc19*)(ff19*), 0, "gg19");
+ check_base_class_offset(lv, (dd19*)(ff19*), ABISELECT(16,8), "gg19");
+ check_base_class_offset(lv, (ff19*), 0, "gg19");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg19.g");
+ test_class_info(&lv, &cd_gg19);
+ dp->~gg19();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg19(Test_gg19, "gg19", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg19C1Ev();
+extern void _ZN4gg19D1Ev();
+Name_Map name_map_gg19[] = {
+ NSPAIR(_ZN4gg19C1Ev),
+ NSPAIR(_ZN4gg19D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa19;
+extern VTBL_ENTRY _ZTI4aa19[];
+extern VTBL_ENTRY _ZTV4aa19[];
+extern Class_Descriptor cd_bb19;
+extern VTBL_ENTRY _ZTI4bb19[];
+extern VTBL_ENTRY _ZTV4bb19[];
+extern Class_Descriptor cd_ee19;
+extern VTBL_ENTRY _ZTI4ee19[];
+extern VTBL_ENTRY _ZTV4ee19[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee19[];
+extern Class_Descriptor cd_cc19;
+extern VTBL_ENTRY _ZTI4cc19[];
+extern VTBL_ENTRY _ZTV4cc19[];
+extern Class_Descriptor cd_dd19;
+extern VTBL_ENTRY _ZTI4dd19[];
+extern VTBL_ENTRY _ZTV4dd19[];
+extern Class_Descriptor cd_ff19;
+extern VTBL_ENTRY _ZTI4ff19[];
+extern VTBL_ENTRY _ZTV4ff19[];
+static Base_Class bases_gg19[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa19, ABISELECT(56,32), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb19, ABISELECT(72,40), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee19, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc19, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd19, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff19, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg19[];
+extern void _ZN4gg193fooEv();
+extern void ABISELECT(_ZThn16_N4gg193fooEv,_ZThn8_N4gg193fooEv)();
+extern void ABISELECT(_ZTv0_n40_N4gg193fooEv,_ZTv0_n20_N4gg193fooEv)();
+extern void ABISELECT(_ZThn40_N4gg193fooEv,_ZThn24_N4gg193fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg193fooEv,_ZTv0_n12_N4gg193fooEv)();
+extern void ABISELECT(_ZThn56_N4gg193fooEv,_ZThn32_N4gg193fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg193fooEv,_ZTv0_n12_N4gg193fooEv)();
+extern void ABISELECT(_ZThn72_N4gg193fooEv,_ZThn40_N4gg193fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg19[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg19[0]),
+ (VTBL_ENTRY)&_ZN4gg193fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg193fooEv,_ZThn8_N4gg193fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg193fooEv,_ZTv0_n20_N4gg193fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg193fooEv,_ZTv0_n12_N4gg193fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg193fooEv,_ZTv0_n12_N4gg193fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg19[];
+extern void _ZN4ee193fooEv();
+static VTBL_ENTRY _tg__ZTV4ee19__4gg19[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee19[0]),
+ (VTBL_ENTRY)&_ZN4ee193fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv)();
+extern void ABISELECT(_ZThn16_N4ee193fooEv,_ZThn8_N4ee193fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa19__4ee19__4gg19[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv)();
+extern void ABISELECT(_ZThn32_N4ee193fooEv,_ZThn16_N4ee193fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb19__4ee19__4gg19[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee19[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv),
+};
+static VTT_ENTRY vtt_gg19[] = {
+ {&(_ZTV4gg19[5]), 5,23},
+ {&(_ZTV4gg19[14]), 14,23},
+ {&(_ZTV4gg19[18]), 18,23},
+ {&(_ZTV4gg19[22]), 22,23},
+ {&(_tg__ZTV4ee19__4gg19[4]), 4,5},
+ {&(_tg__ZTV4aa19__4ee19__4gg19[3]), 3,4},
+ {&(_tg__ZTV4bb19__4ee19__4gg19[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg19[];
+extern VTBL_ENTRY _ZTV4gg19[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg19[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee193fooEv,_ZTv0_n12_N4ee193fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee193fooEv,_ZThn16_N4ee193fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee193fooEv,_ZThn8_N4ee193fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg193fooEv,_ZTv0_n12_N4gg193fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg193fooEv,_ZThn40_N4gg193fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg193fooEv,_ZThn32_N4gg193fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg193fooEv,_ZTv0_n20_N4gg193fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg193fooEv,_ZThn24_N4gg193fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg19 = { "gg19", // class name
+ bases_gg19, 6,
+ &(vtc_gg19[0]), // expected_vtbl_contents
+ &(vtt_gg19[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg19),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg19),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg19),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names46,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa20 {
+ int a;
+ aa20(); // _ZN4aa20C1Ev
+ virtual void foo(); // _ZN4aa203fooEv
+ ~aa20(); // tgen
+};
+//SIG(-1 aa20) C1{ v1 Fi}
+
+
+ aa20 ::aa20(){ note_ctor("aa20", this);}
+void aa20 ::foo(){vfunc_called(this, "_ZN4aa203fooEv");}
+aa20 ::~aa20(){ note_dtor("aa20", this);} // tgen
+
+static void Test_aa20()
+{
+ extern Class_Descriptor cd_aa20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa20, buf);
+ aa20 *dp, &lv = *(dp=new (buf) aa20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa20)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa20.a");
+ test_class_info(&lv, &cd_aa20);
+ dp->~aa20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa20(Test_aa20, "aa20", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa20C1Ev();
+extern void _ZN4aa20D1Ev();
+Name_Map name_map_aa20[] = {
+ NSPAIR(_ZN4aa20C1Ev),
+ NSPAIR(_ZN4aa20D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa20[];
+extern void _ZN4aa203fooEv();
+static VTBL_ENTRY vtc_aa20[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa20[0]),
+ (VTBL_ENTRY)&_ZN4aa203fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa20[];
+extern VTBL_ENTRY _ZTV4aa20[];
+Class_Descriptor cd_aa20 = { "aa20", // class name
+ 0,0,//no base classes
+ &(vtc_aa20[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa20),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa20),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb20 {
+ int b;
+ bb20(); // _ZN4bb20C1Ev
+ virtual void foo(); // _ZN4bb203fooEv
+ ~bb20(); // tgen
+};
+//SIG(-1 bb20) C1{ v1 Fi}
+
+
+ bb20 ::bb20(){ note_ctor("bb20", this);}
+void bb20 ::foo(){vfunc_called(this, "_ZN4bb203fooEv");}
+bb20 ::~bb20(){ note_dtor("bb20", this);} // tgen
+
+static void Test_bb20()
+{
+ extern Class_Descriptor cd_bb20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb20, buf);
+ bb20 *dp, &lv = *(dp=new (buf) bb20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb20)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb20.b");
+ test_class_info(&lv, &cd_bb20);
+ dp->~bb20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb20(Test_bb20, "bb20", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb20C1Ev();
+extern void _ZN4bb20D1Ev();
+Name_Map name_map_bb20[] = {
+ NSPAIR(_ZN4bb20C1Ev),
+ NSPAIR(_ZN4bb20D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb20[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_bb20[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb20[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+Class_Descriptor cd_bb20 = { "bb20", // class name
+ 0,0,//no base classes
+ &(vtc_bb20[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb20),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb20),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc20 {
+ int c;
+ cc20(); // _ZN4cc20C1Ev
+ virtual void foo(); // _ZN4cc203fooEv
+ ~cc20(); // tgen
+};
+//SIG(-1 cc20) C1{ v1 Fi}
+
+
+ cc20 ::cc20(){ note_ctor("cc20", this);}
+void cc20 ::foo(){vfunc_called(this, "_ZN4cc203fooEv");}
+cc20 ::~cc20(){ note_dtor("cc20", this);} // tgen
+
+static void Test_cc20()
+{
+ extern Class_Descriptor cd_cc20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc20, buf);
+ cc20 *dp, &lv = *(dp=new (buf) cc20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc20)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc20.c");
+ test_class_info(&lv, &cd_cc20);
+ dp->~cc20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc20(Test_cc20, "cc20", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc20C1Ev();
+extern void _ZN4cc20D1Ev();
+Name_Map name_map_cc20[] = {
+ NSPAIR(_ZN4cc20C1Ev),
+ NSPAIR(_ZN4cc20D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc20[];
+extern void _ZN4cc203fooEv();
+static VTBL_ENTRY vtc_cc20[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc20[0]),
+ (VTBL_ENTRY)&_ZN4cc203fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc20[];
+extern VTBL_ENTRY _ZTV4cc20[];
+Class_Descriptor cd_cc20 = { "cc20", // class name
+ 0,0,//no base classes
+ &(vtc_cc20[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc20),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc20),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd20 {
+ int d;
+ dd20(); // _ZN4dd20C1Ev
+ virtual void foo(); // _ZN4dd203fooEv
+ ~dd20(); // tgen
+};
+//SIG(-1 dd20) C1{ v1 Fi}
+
+
+ dd20 ::dd20(){ note_ctor("dd20", this);}
+void dd20 ::foo(){vfunc_called(this, "_ZN4dd203fooEv");}
+dd20 ::~dd20(){ note_dtor("dd20", this);} // tgen
+
+static void Test_dd20()
+{
+ extern Class_Descriptor cd_dd20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd20, buf);
+ dd20 *dp, &lv = *(dp=new (buf) dd20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd20)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd20.d");
+ test_class_info(&lv, &cd_dd20);
+ dp->~dd20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd20(Test_dd20, "dd20", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd20C1Ev();
+extern void _ZN4dd20D1Ev();
+Name_Map name_map_dd20[] = {
+ NSPAIR(_ZN4dd20C1Ev),
+ NSPAIR(_ZN4dd20D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd20[];
+extern void _ZN4dd203fooEv();
+static VTBL_ENTRY vtc_dd20[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd20[0]),
+ (VTBL_ENTRY)&_ZN4dd203fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd20[];
+extern VTBL_ENTRY _ZTV4dd20[];
+Class_Descriptor cd_dd20 = { "dd20", // class name
+ 0,0,//no base classes
+ &(vtc_dd20[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd20),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd20),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20 : aa20 , bb20 {
+ int e;
+ ee20(); // _ZN4ee20C1Ev
+ virtual void foo(); // _ZN4ee203fooEv
+ ~ee20(); // tgen
+};
+//SIG(-1 ee20) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee20 ::ee20(){ note_ctor("ee20", this);}
+void ee20 ::foo(){vfunc_called(this, "_ZN4ee203fooEv");}
+ee20 ::~ee20(){ note_dtor("ee20", this);} // tgen
+
+static void Test_ee20()
+{
+ extern Class_Descriptor cd_ee20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee20, buf);
+ ee20 *dp, &lv = *(dp=new (buf) ee20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20)");
+ check_base_class_offset(lv, (aa20*), 0, "ee20");
+ check_base_class_offset(lv, (bb20*), ABISELECT(16,8), "ee20");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee20.e");
+ test_class_info(&lv, &cd_ee20);
+ dp->~ee20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20(Test_ee20, "ee20", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee20C1Ev();
+extern void _ZN4ee20D1Ev();
+Name_Map name_map_ee20[] = {
+ NSPAIR(_ZN4ee20C1Ev),
+ NSPAIR(_ZN4ee20D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa20;
+extern VTBL_ENTRY _ZTI4aa20[];
+extern VTBL_ENTRY _ZTV4aa20[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_ee20[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb20, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee20[];
+extern void _ZN4ee203fooEv();
+extern void ABISELECT(_ZThn16_N4ee203fooEv,_ZThn8_N4ee203fooEv)();
+static VTBL_ENTRY vtc_ee20[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee20[0]),
+ (VTBL_ENTRY)&_ZN4ee203fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee20[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee203fooEv,_ZThn8_N4ee203fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee20[];
+extern VTBL_ENTRY _ZTV4ee20[];
+Class_Descriptor cd_ee20 = { "ee20", // class name
+ bases_ee20, 2,
+ &(vtc_ee20[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee20),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee20),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff20 : virtual cc20 , dd20 {
+ int f;
+ ff20(const ABISELECT(__tsi64,int) *const *); // _ZN4ff20C2Ev
+ virtual void foo(); // _ZN4ff203fooEv
+ ~ff20(); // tgen
+ ff20(); // tgen
+};
+//SIG(-1 ff20) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff20 ::ff20(const ABISELECT(__tsi64,int) *const *){}
+void ff20 ::foo(){vfunc_called(this, "_ZN4ff203fooEv");}
+ff20 ::~ff20(){ note_dtor("ff20", this);} // tgen
+ff20 ::ff20(){ note_ctor("ff20", this);} // tgen
+
+static void Test_ff20()
+{
+ extern Class_Descriptor cd_ff20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff20, buf);
+ ff20 *dp, &lv = *(dp=new (buf) ff20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff20)");
+ check_base_class_offset(lv, (cc20*), ABISELECT(16,12), "ff20");
+ check_base_class_offset(lv, (dd20*), 0, "ff20");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff20.f");
+ test_class_info(&lv, &cd_ff20);
+ dp->~ff20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff20(Test_ff20, "ff20", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff20C1Ev();
+extern void _ZN4ff20D1Ev();
+Name_Map name_map_ff20[] = {
+ NSPAIR(_ZN4ff20C1Ev),
+ NSPAIR(_ZN4ff20D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc20;
+extern VTBL_ENTRY _ZTI4cc20[];
+extern VTBL_ENTRY _ZTV4cc20[];
+extern Class_Descriptor cd_dd20;
+extern VTBL_ENTRY _ZTI4dd20[];
+extern VTBL_ENTRY _ZTV4dd20[];
+static Base_Class bases_ff20[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc20, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff20[];
+extern void _ZN4ff203fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff203fooEv,_ZTv0_n12_N4ff203fooEv)();
+extern void ABISELECT(_ZThn16_N4ff203fooEv,_ZThn12_N4ff203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff20[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff20[0]),
+ (VTBL_ENTRY)&_ZN4ff203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff20[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff203fooEv,_ZTv0_n12_N4ff203fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff20[];
+static VTT_ENTRY vtt_ff20[] = {
+ {&(_ZTV4ff20[3]), 3,8},
+ {&(_ZTV4ff20[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff20[];
+extern VTBL_ENTRY _ZTV4ff20[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff20[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff203fooEv,_ZTv0_n12_N4ff203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff203fooEv,_ZThn12_N4ff203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff20 = { "ff20", // class name
+ bases_ff20, 2,
+ &(vtc_ff20[0]), // expected_vtbl_contents
+ &(vtt_ff20[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff20),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff20),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff20),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg20 : virtual ee20 , ff20 {
+ int g;
+ gg20(const ABISELECT(__tsi64,int) *const *); // _ZN4gg20C2Ev
+ virtual void foo(); // _ZN4gg203fooEv
+ ~gg20(); // tgen
+ gg20(); // tgen
+};
+//SIG(1 gg20) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg20 ::gg20(const ABISELECT(__tsi64,int) *const *){}
+void gg20 ::foo(){vfunc_called(this, "_ZN4gg203fooEv");}
+gg20 ::~gg20(){ note_dtor("gg20", this);} // tgen
+gg20 ::gg20(){ note_ctor("gg20", this);} // tgen
+
+static void Test_gg20()
+{
+ extern Class_Descriptor cd_gg20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg20, buf);
+ gg20 *dp, &lv = *(dp=new (buf) gg20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg20)");
+ check_base_class_offset(lv, (aa20*)(ee20*), ABISELECT(24,16), "gg20");
+ check_base_class_offset(lv, (bb20*)(ee20*), ABISELECT(40,24), "gg20");
+ check_base_class_offset(lv, (ee20*), ABISELECT(24,16), "gg20");
+ check_base_class_offset(lv, (cc20*)(ff20*), ABISELECT(56,36), "gg20");
+ check_base_class_offset(lv, (dd20*)(ff20*), 0, "gg20");
+ check_base_class_offset(lv, (ff20*), 0, "gg20");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg20.g");
+ test_class_info(&lv, &cd_gg20);
+ dp->~gg20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg20(Test_gg20, "gg20", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg20C1Ev();
+extern void _ZN4gg20D1Ev();
+Name_Map name_map_gg20[] = {
+ NSPAIR(_ZN4gg20C1Ev),
+ NSPAIR(_ZN4gg20D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa20;
+extern VTBL_ENTRY _ZTI4aa20[];
+extern VTBL_ENTRY _ZTV4aa20[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_ee20;
+extern VTBL_ENTRY _ZTI4ee20[];
+extern VTBL_ENTRY _ZTV4ee20[];
+extern Class_Descriptor cd_cc20;
+extern VTBL_ENTRY _ZTI4cc20[];
+extern VTBL_ENTRY _ZTV4cc20[];
+extern Class_Descriptor cd_dd20;
+extern VTBL_ENTRY _ZTI4dd20[];
+extern VTBL_ENTRY _ZTV4dd20[];
+extern Class_Descriptor cd_ff20;
+extern VTBL_ENTRY _ZTI4ff20[];
+extern VTBL_ENTRY _ZTV4ff20[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff20[];
+static Base_Class bases_gg20[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa20, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc20, ABISELECT(56,36), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg20[];
+extern void _ZN4gg203fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg203fooEv,_ZTv0_n12_N4gg203fooEv)();
+extern void ABISELECT(_ZThn24_N4gg203fooEv,_ZThn16_N4gg203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg203fooEv,_ZTvn8_n12_N4gg203fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg203fooEv,_ZTv0_n12_N4gg203fooEv)();
+extern void ABISELECT(_ZThn56_N4gg203fooEv,_ZThn36_N4gg203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg20[] = {
+ ABISELECT(24,16),
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg20[0]),
+ (VTBL_ENTRY)&_ZN4gg203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg20[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg203fooEv,_ZTv0_n12_N4gg203fooEv),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg20[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg203fooEv,_ZTvn8_n12_N4gg203fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg20[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg203fooEv,_ZTv0_n12_N4gg203fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg20[];
+extern void _ZN4ff203fooEv();
+static VTBL_ENTRY _tg__ZTV4ff20__4gg20[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff20[0]),
+ (VTBL_ENTRY)&_ZN4ff203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff203fooEv,_ZTv0_n12_N4ff203fooEv)();
+extern void ABISELECT(_ZThn56_N4ff203fooEv,_ZThn36_N4ff203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc20__4ff20__4gg20[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4ff20[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff203fooEv,_ZTv0_n12_N4ff203fooEv),
+};
+static VTT_ENTRY vtt_gg20[] = {
+ {&(_ZTV4gg20[4]), 4,16},
+ {&(_tg__ZTV4ff20__4gg20[3]), 3,4},
+ {&(_tg__ZTV4cc20__4ff20__4gg20[3]), 3,4},
+ {&(_ZTV4gg20[8]), 8,16},
+ {&(_ZTV4gg20[11]), 11,16},
+ {&(_ZTV4gg20[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI4gg20[];
+extern VTBL_ENTRY _ZTV4gg20[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg20[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff203fooEv,_ZTv0_n12_N4ff203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff203fooEv,_ZThn36_N4ff203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg203fooEv,_ZTv0_n12_N4gg203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg203fooEv,_ZThn36_N4gg203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg203fooEv,_ZThn16_N4gg203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg20 = { "gg20", // class name
+ bases_gg20, 6,
+ &(vtc_gg20[0]), // expected_vtbl_contents
+ &(vtt_gg20[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg20),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg20),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg20),6, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa21 {
+ int a;
+ aa21(); // _ZN4aa21C1Ev
+ virtual void foo(); // _ZN4aa213fooEv
+ ~aa21(); // tgen
+};
+//SIG(-1 aa21) C1{ v1 Fi}
+
+
+ aa21 ::aa21(){ note_ctor("aa21", this);}
+void aa21 ::foo(){vfunc_called(this, "_ZN4aa213fooEv");}
+aa21 ::~aa21(){ note_dtor("aa21", this);} // tgen
+
+static void Test_aa21()
+{
+ extern Class_Descriptor cd_aa21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa21, buf);
+ aa21 *dp, &lv = *(dp=new (buf) aa21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa21)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa21.a");
+ test_class_info(&lv, &cd_aa21);
+ dp->~aa21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa21(Test_aa21, "aa21", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa21C1Ev();
+extern void _ZN4aa21D1Ev();
+Name_Map name_map_aa21[] = {
+ NSPAIR(_ZN4aa21C1Ev),
+ NSPAIR(_ZN4aa21D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa21[];
+extern void _ZN4aa213fooEv();
+static VTBL_ENTRY vtc_aa21[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa21[0]),
+ (VTBL_ENTRY)&_ZN4aa213fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa21[];
+extern VTBL_ENTRY _ZTV4aa21[];
+Class_Descriptor cd_aa21 = { "aa21", // class name
+ 0,0,//no base classes
+ &(vtc_aa21[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa21),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa21),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb21 {
+ int b;
+ bb21(); // _ZN4bb21C1Ev
+ virtual void foo(); // _ZN4bb213fooEv
+ ~bb21(); // tgen
+};
+//SIG(-1 bb21) C1{ v1 Fi}
+
+
+ bb21 ::bb21(){ note_ctor("bb21", this);}
+void bb21 ::foo(){vfunc_called(this, "_ZN4bb213fooEv");}
+bb21 ::~bb21(){ note_dtor("bb21", this);} // tgen
+
+static void Test_bb21()
+{
+ extern Class_Descriptor cd_bb21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb21, buf);
+ bb21 *dp, &lv = *(dp=new (buf) bb21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb21)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb21.b");
+ test_class_info(&lv, &cd_bb21);
+ dp->~bb21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb21(Test_bb21, "bb21", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb21C1Ev();
+extern void _ZN4bb21D1Ev();
+Name_Map name_map_bb21[] = {
+ NSPAIR(_ZN4bb21C1Ev),
+ NSPAIR(_ZN4bb21D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb21[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_bb21[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb21[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+Class_Descriptor cd_bb21 = { "bb21", // class name
+ 0,0,//no base classes
+ &(vtc_bb21[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb21),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb21),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc21 {
+ int c;
+ cc21(); // _ZN4cc21C1Ev
+ virtual void foo(); // _ZN4cc213fooEv
+ ~cc21(); // tgen
+};
+//SIG(-1 cc21) C1{ v1 Fi}
+
+
+ cc21 ::cc21(){ note_ctor("cc21", this);}
+void cc21 ::foo(){vfunc_called(this, "_ZN4cc213fooEv");}
+cc21 ::~cc21(){ note_dtor("cc21", this);} // tgen
+
+static void Test_cc21()
+{
+ extern Class_Descriptor cd_cc21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc21, buf);
+ cc21 *dp, &lv = *(dp=new (buf) cc21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc21)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc21.c");
+ test_class_info(&lv, &cd_cc21);
+ dp->~cc21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc21(Test_cc21, "cc21", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc21C1Ev();
+extern void _ZN4cc21D1Ev();
+Name_Map name_map_cc21[] = {
+ NSPAIR(_ZN4cc21C1Ev),
+ NSPAIR(_ZN4cc21D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc21[];
+extern void _ZN4cc213fooEv();
+static VTBL_ENTRY vtc_cc21[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc21[0]),
+ (VTBL_ENTRY)&_ZN4cc213fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc21[];
+extern VTBL_ENTRY _ZTV4cc21[];
+Class_Descriptor cd_cc21 = { "cc21", // class name
+ 0,0,//no base classes
+ &(vtc_cc21[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc21),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc21),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd21 {
+ int d;
+ dd21(); // _ZN4dd21C1Ev
+ virtual void foo(); // _ZN4dd213fooEv
+ ~dd21(); // tgen
+};
+//SIG(-1 dd21) C1{ v1 Fi}
+
+
+ dd21 ::dd21(){ note_ctor("dd21", this);}
+void dd21 ::foo(){vfunc_called(this, "_ZN4dd213fooEv");}
+dd21 ::~dd21(){ note_dtor("dd21", this);} // tgen
+
+static void Test_dd21()
+{
+ extern Class_Descriptor cd_dd21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd21, buf);
+ dd21 *dp, &lv = *(dp=new (buf) dd21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd21)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd21.d");
+ test_class_info(&lv, &cd_dd21);
+ dp->~dd21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd21(Test_dd21, "dd21", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd21C1Ev();
+extern void _ZN4dd21D1Ev();
+Name_Map name_map_dd21[] = {
+ NSPAIR(_ZN4dd21C1Ev),
+ NSPAIR(_ZN4dd21D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd21[];
+extern void _ZN4dd213fooEv();
+static VTBL_ENTRY vtc_dd21[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd21[0]),
+ (VTBL_ENTRY)&_ZN4dd213fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd21[];
+extern VTBL_ENTRY _ZTV4dd21[];
+Class_Descriptor cd_dd21 = { "dd21", // class name
+ 0,0,//no base classes
+ &(vtc_dd21[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd21),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd21),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21 : virtual aa21 , bb21 {
+ int e;
+ ee21(const ABISELECT(__tsi64,int) *const *); // _ZN4ee21C2Ev
+ virtual void foo(); // _ZN4ee213fooEv
+ ~ee21(); // tgen
+ ee21(); // tgen
+};
+//SIG(-1 ee21) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee21 ::ee21(const ABISELECT(__tsi64,int) *const *){}
+void ee21 ::foo(){vfunc_called(this, "_ZN4ee213fooEv");}
+ee21 ::~ee21(){ note_dtor("ee21", this);} // tgen
+ee21 ::ee21(){ note_ctor("ee21", this);} // tgen
+
+static void Test_ee21()
+{
+ extern Class_Descriptor cd_ee21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee21, buf);
+ ee21 *dp, &lv = *(dp=new (buf) ee21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21)");
+ check_base_class_offset(lv, (aa21*), ABISELECT(16,12), "ee21");
+ check_base_class_offset(lv, (bb21*), 0, "ee21");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21.e");
+ test_class_info(&lv, &cd_ee21);
+ dp->~ee21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21(Test_ee21, "ee21", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee21C1Ev();
+extern void _ZN4ee21D1Ev();
+Name_Map name_map_ee21[] = {
+ NSPAIR(_ZN4ee21C1Ev),
+ NSPAIR(_ZN4ee21D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa21;
+extern VTBL_ENTRY _ZTI4aa21[];
+extern VTBL_ENTRY _ZTV4aa21[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_ee21[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa21, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee21[];
+extern void _ZN4ee213fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee213fooEv,_ZTv0_n12_N4ee213fooEv)();
+extern void ABISELECT(_ZThn16_N4ee213fooEv,_ZThn12_N4ee213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee21[0]),
+ (VTBL_ENTRY)&_ZN4ee213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee213fooEv,_ZTv0_n12_N4ee213fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee21[];
+static VTT_ENTRY vtt_ee21[] = {
+ {&(_ZTV4ee21[3]), 3,8},
+ {&(_ZTV4ee21[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee21[];
+extern VTBL_ENTRY _ZTV4ee21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee21[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee213fooEv,_ZTv0_n12_N4ee213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee213fooEv,_ZThn12_N4ee213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21 = { "ee21", // class name
+ bases_ee21, 2,
+ &(vtc_ee21[0]), // expected_vtbl_contents
+ &(vtt_ee21[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee21),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee21),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee21),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff21 : virtual cc21 , dd21 {
+ int f;
+ ff21(const ABISELECT(__tsi64,int) *const *); // _ZN4ff21C2Ev
+ virtual void foo(); // _ZN4ff213fooEv
+ ~ff21(); // tgen
+ ff21(); // tgen
+};
+//SIG(-1 ff21) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff21 ::ff21(const ABISELECT(__tsi64,int) *const *){}
+void ff21 ::foo(){vfunc_called(this, "_ZN4ff213fooEv");}
+ff21 ::~ff21(){ note_dtor("ff21", this);} // tgen
+ff21 ::ff21(){ note_ctor("ff21", this);} // tgen
+
+static void Test_ff21()
+{
+ extern Class_Descriptor cd_ff21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff21, buf);
+ ff21 *dp, &lv = *(dp=new (buf) ff21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff21)");
+ check_base_class_offset(lv, (cc21*), ABISELECT(16,12), "ff21");
+ check_base_class_offset(lv, (dd21*), 0, "ff21");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff21.f");
+ test_class_info(&lv, &cd_ff21);
+ dp->~ff21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff21(Test_ff21, "ff21", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff21C1Ev();
+extern void _ZN4ff21D1Ev();
+Name_Map name_map_ff21[] = {
+ NSPAIR(_ZN4ff21C1Ev),
+ NSPAIR(_ZN4ff21D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc21;
+extern VTBL_ENTRY _ZTI4cc21[];
+extern VTBL_ENTRY _ZTV4cc21[];
+extern Class_Descriptor cd_dd21;
+extern VTBL_ENTRY _ZTI4dd21[];
+extern VTBL_ENTRY _ZTV4dd21[];
+static Base_Class bases_ff21[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc21, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff21[];
+extern void _ZN4ff213fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff213fooEv,_ZTv0_n12_N4ff213fooEv)();
+extern void ABISELECT(_ZThn16_N4ff213fooEv,_ZThn12_N4ff213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff21[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff21[0]),
+ (VTBL_ENTRY)&_ZN4ff213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff213fooEv,_ZTv0_n12_N4ff213fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff21[];
+static VTT_ENTRY vtt_ff21[] = {
+ {&(_ZTV4ff21[3]), 3,8},
+ {&(_ZTV4ff21[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff21[];
+extern VTBL_ENTRY _ZTV4ff21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff21[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff213fooEv,_ZTv0_n12_N4ff213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff213fooEv,_ZThn12_N4ff213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff21 = { "ff21", // class name
+ bases_ff21, 2,
+ &(vtc_ff21[0]), // expected_vtbl_contents
+ &(vtt_ff21[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff21),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff21),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff21),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg21 : virtual ee21 , ff21 {
+ int g;
+ gg21(const ABISELECT(__tsi64,int) *const *); // _ZN4gg21C2Ev
+ virtual void foo(); // _ZN4gg213fooEv
+ ~gg21(); // tgen
+ gg21(); // tgen
+};
+//SIG(1 gg21) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg21 ::gg21(const ABISELECT(__tsi64,int) *const *){}
+void gg21 ::foo(){vfunc_called(this, "_ZN4gg213fooEv");}
+gg21 ::~gg21(){ note_dtor("gg21", this);} // tgen
+gg21 ::gg21(){ note_ctor("gg21", this);} // tgen
+
+static void Test_gg21()
+{
+ extern Class_Descriptor cd_gg21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg21, buf);
+ gg21 *dp, &lv = *(dp=new (buf) gg21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg21)");
+ check_base_class_offset(lv, (aa21*)(ee21*), ABISELECT(40,28), "gg21");
+ check_base_class_offset(lv, (bb21*)(ee21*), ABISELECT(24,16), "gg21");
+ check_base_class_offset(lv, (ee21*), ABISELECT(24,16), "gg21");
+ check_base_class_offset(lv, (cc21*)(ff21*), ABISELECT(56,36), "gg21");
+ check_base_class_offset(lv, (dd21*)(ff21*), 0, "gg21");
+ check_base_class_offset(lv, (ff21*), 0, "gg21");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg21.g");
+ test_class_info(&lv, &cd_gg21);
+ dp->~gg21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg21(Test_gg21, "gg21", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg21C1Ev();
+extern void _ZN4gg21D1Ev();
+Name_Map name_map_gg21[] = {
+ NSPAIR(_ZN4gg21C1Ev),
+ NSPAIR(_ZN4gg21D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa21;
+extern VTBL_ENTRY _ZTI4aa21[];
+extern VTBL_ENTRY _ZTV4aa21[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_ee21;
+extern VTBL_ENTRY _ZTI4ee21[];
+extern VTBL_ENTRY _ZTV4ee21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee21[];
+extern Class_Descriptor cd_cc21;
+extern VTBL_ENTRY _ZTI4cc21[];
+extern VTBL_ENTRY _ZTV4cc21[];
+extern Class_Descriptor cd_dd21;
+extern VTBL_ENTRY _ZTI4dd21[];
+extern VTBL_ENTRY _ZTV4dd21[];
+extern Class_Descriptor cd_ff21;
+extern VTBL_ENTRY _ZTI4ff21[];
+extern VTBL_ENTRY _ZTV4ff21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff21[];
+static Base_Class bases_gg21[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa21, ABISELECT(40,28), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb21, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee21, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc21, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg21[];
+extern void _ZN4gg213fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg213fooEv,_ZTv0_n16_N4gg213fooEv)();
+extern void ABISELECT(_ZThn24_N4gg213fooEv,_ZThn16_N4gg213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg213fooEv,_ZTv0_n12_N4gg213fooEv)();
+extern void ABISELECT(_ZThn40_N4gg213fooEv,_ZThn28_N4gg213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg213fooEv,_ZTv0_n12_N4gg213fooEv)();
+extern void ABISELECT(_ZThn56_N4gg213fooEv,_ZThn36_N4gg213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg21[] = {
+ ABISELECT(40,28),
+ ABISELECT(24,16),
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg21[0]),
+ (VTBL_ENTRY)&_ZN4gg213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,12),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg213fooEv,_ZTv0_n16_N4gg213fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI4gg21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg213fooEv,_ZTv0_n12_N4gg213fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg213fooEv,_ZTv0_n12_N4gg213fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg21[];
+extern void _ZN4ff213fooEv();
+static VTBL_ENTRY _tg__ZTV4ff21__4gg21[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff21[0]),
+ (VTBL_ENTRY)&_ZN4ff213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff213fooEv,_ZTv0_n12_N4ff213fooEv)();
+extern void ABISELECT(_ZThn56_N4ff213fooEv,_ZThn36_N4ff213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc21__4ff21__4gg21[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4ff21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff213fooEv,_ZTv0_n12_N4ff213fooEv),
+};
+extern void _ZN4ee213fooEv();
+static VTBL_ENTRY _tg__ZTV4ee21__4gg21[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee21[0]),
+ (VTBL_ENTRY)&_ZN4ee213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee213fooEv,_ZTv0_n12_N4ee213fooEv)();
+extern void ABISELECT(_ZThn16_N4ee213fooEv,_ZThn12_N4ee213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa21__4ee21__4gg21[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee21[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee213fooEv,_ZTv0_n12_N4ee213fooEv),
+};
+static VTT_ENTRY vtt_gg21[] = {
+ {&(_ZTV4gg21[5]), 5,19},
+ {&(_tg__ZTV4ff21__4gg21[3]), 3,4},
+ {&(_tg__ZTV4cc21__4ff21__4gg21[3]), 3,4},
+ {&(_ZTV4gg21[10]), 10,19},
+ {&(_ZTV4gg21[14]), 14,19},
+ {&(_ZTV4gg21[18]), 18,19},
+ {&(_tg__ZTV4ee21__4gg21[3]), 3,4},
+ {&(_tg__ZTV4aa21__4ee21__4gg21[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg21[];
+extern VTBL_ENTRY _ZTV4gg21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg21[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee213fooEv,_ZTv0_n12_N4ee213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee213fooEv,_ZThn12_N4ee213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff213fooEv,_ZTv0_n12_N4ff213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff213fooEv,_ZThn36_N4ff213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg213fooEv,_ZTv0_n12_N4gg213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg213fooEv,_ZThn36_N4gg213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg213fooEv,_ZThn28_N4gg213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg213fooEv,_ZTv0_n16_N4gg213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg213fooEv,_ZThn16_N4gg213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg21 = { "gg21", // class name
+ bases_gg21, 6,
+ &(vtc_gg21[0]), // expected_vtbl_contents
+ &(vtt_gg21[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg21),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg21),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg21),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa22 {
+ int a;
+ aa22(); // _ZN4aa22C1Ev
+ virtual void foo(); // _ZN4aa223fooEv
+ ~aa22(); // tgen
+};
+//SIG(-1 aa22) C1{ v1 Fi}
+
+
+ aa22 ::aa22(){ note_ctor("aa22", this);}
+void aa22 ::foo(){vfunc_called(this, "_ZN4aa223fooEv");}
+aa22 ::~aa22(){ note_dtor("aa22", this);} // tgen
+
+static void Test_aa22()
+{
+ extern Class_Descriptor cd_aa22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa22, buf);
+ aa22 *dp, &lv = *(dp=new (buf) aa22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa22)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa22.a");
+ test_class_info(&lv, &cd_aa22);
+ dp->~aa22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa22(Test_aa22, "aa22", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa22C1Ev();
+extern void _ZN4aa22D1Ev();
+Name_Map name_map_aa22[] = {
+ NSPAIR(_ZN4aa22C1Ev),
+ NSPAIR(_ZN4aa22D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa22[];
+extern void _ZN4aa223fooEv();
+static VTBL_ENTRY vtc_aa22[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa22[0]),
+ (VTBL_ENTRY)&_ZN4aa223fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa22[];
+extern VTBL_ENTRY _ZTV4aa22[];
+Class_Descriptor cd_aa22 = { "aa22", // class name
+ 0,0,//no base classes
+ &(vtc_aa22[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa22),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa22),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb22 {
+ int b;
+ bb22(); // _ZN4bb22C1Ev
+ virtual void foo(); // _ZN4bb223fooEv
+ ~bb22(); // tgen
+};
+//SIG(-1 bb22) C1{ v1 Fi}
+
+
+ bb22 ::bb22(){ note_ctor("bb22", this);}
+void bb22 ::foo(){vfunc_called(this, "_ZN4bb223fooEv");}
+bb22 ::~bb22(){ note_dtor("bb22", this);} // tgen
+
+static void Test_bb22()
+{
+ extern Class_Descriptor cd_bb22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb22, buf);
+ bb22 *dp, &lv = *(dp=new (buf) bb22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb22)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb22.b");
+ test_class_info(&lv, &cd_bb22);
+ dp->~bb22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb22(Test_bb22, "bb22", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb22C1Ev();
+extern void _ZN4bb22D1Ev();
+Name_Map name_map_bb22[] = {
+ NSPAIR(_ZN4bb22C1Ev),
+ NSPAIR(_ZN4bb22D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb22[];
+extern void _ZN4bb223fooEv();
+static VTBL_ENTRY vtc_bb22[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb22[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+Class_Descriptor cd_bb22 = { "bb22", // class name
+ 0,0,//no base classes
+ &(vtc_bb22[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb22),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb22),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc22 {
+ int c;
+ cc22(); // _ZN4cc22C1Ev
+ virtual void foo(); // _ZN4cc223fooEv
+ ~cc22(); // tgen
+};
+//SIG(-1 cc22) C1{ v1 Fi}
+
+
+ cc22 ::cc22(){ note_ctor("cc22", this);}
+void cc22 ::foo(){vfunc_called(this, "_ZN4cc223fooEv");}
+cc22 ::~cc22(){ note_dtor("cc22", this);} // tgen
+
+static void Test_cc22()
+{
+ extern Class_Descriptor cd_cc22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc22, buf);
+ cc22 *dp, &lv = *(dp=new (buf) cc22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc22)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc22.c");
+ test_class_info(&lv, &cd_cc22);
+ dp->~cc22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc22(Test_cc22, "cc22", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc22C1Ev();
+extern void _ZN4cc22D1Ev();
+Name_Map name_map_cc22[] = {
+ NSPAIR(_ZN4cc22C1Ev),
+ NSPAIR(_ZN4cc22D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc22[];
+extern void _ZN4cc223fooEv();
+static VTBL_ENTRY vtc_cc22[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc22[0]),
+ (VTBL_ENTRY)&_ZN4cc223fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc22[];
+extern VTBL_ENTRY _ZTV4cc22[];
+Class_Descriptor cd_cc22 = { "cc22", // class name
+ 0,0,//no base classes
+ &(vtc_cc22[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc22),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc22),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd22 {
+ int d;
+ dd22(); // _ZN4dd22C1Ev
+ virtual void foo(); // _ZN4dd223fooEv
+ ~dd22(); // tgen
+};
+//SIG(-1 dd22) C1{ v1 Fi}
+
+
+ dd22 ::dd22(){ note_ctor("dd22", this);}
+void dd22 ::foo(){vfunc_called(this, "_ZN4dd223fooEv");}
+dd22 ::~dd22(){ note_dtor("dd22", this);} // tgen
+
+static void Test_dd22()
+{
+ extern Class_Descriptor cd_dd22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd22, buf);
+ dd22 *dp, &lv = *(dp=new (buf) dd22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd22)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd22.d");
+ test_class_info(&lv, &cd_dd22);
+ dp->~dd22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd22(Test_dd22, "dd22", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd22C1Ev();
+extern void _ZN4dd22D1Ev();
+Name_Map name_map_dd22[] = {
+ NSPAIR(_ZN4dd22C1Ev),
+ NSPAIR(_ZN4dd22D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd22[];
+extern void _ZN4dd223fooEv();
+static VTBL_ENTRY vtc_dd22[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd22[0]),
+ (VTBL_ENTRY)&_ZN4dd223fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd22[];
+extern VTBL_ENTRY _ZTV4dd22[];
+Class_Descriptor cd_dd22 = { "dd22", // class name
+ 0,0,//no base classes
+ &(vtc_dd22[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd22),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd22),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22 : aa22 , virtual bb22 {
+ int e;
+ ee22(const ABISELECT(__tsi64,int) *const *); // _ZN4ee22C2Ev
+ virtual void foo(); // _ZN4ee223fooEv
+ ~ee22(); // tgen
+ ee22(); // tgen
+};
+//SIG(-1 ee22) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee22 ::ee22(const ABISELECT(__tsi64,int) *const *){}
+void ee22 ::foo(){vfunc_called(this, "_ZN4ee223fooEv");}
+ee22 ::~ee22(){ note_dtor("ee22", this);} // tgen
+ee22 ::ee22(){ note_ctor("ee22", this);} // tgen
+
+static void Test_ee22()
+{
+ extern Class_Descriptor cd_ee22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee22, buf);
+ ee22 *dp, &lv = *(dp=new (buf) ee22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22)");
+ check_base_class_offset(lv, (aa22*), 0, "ee22");
+ check_base_class_offset(lv, (bb22*), ABISELECT(16,12), "ee22");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee22.e");
+ test_class_info(&lv, &cd_ee22);
+ dp->~ee22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22(Test_ee22, "ee22", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee22C1Ev();
+extern void _ZN4ee22D1Ev();
+Name_Map name_map_ee22[] = {
+ NSPAIR(_ZN4ee22C1Ev),
+ NSPAIR(_ZN4ee22D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa22;
+extern VTBL_ENTRY _ZTI4aa22[];
+extern VTBL_ENTRY _ZTV4aa22[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_ee22[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb22, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee22[];
+extern void _ZN4ee223fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee223fooEv,_ZTv0_n12_N4ee223fooEv)();
+extern void ABISELECT(_ZThn16_N4ee223fooEv,_ZThn12_N4ee223fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee22[0]),
+ (VTBL_ENTRY)&_ZN4ee223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee223fooEv,_ZTv0_n12_N4ee223fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee22[];
+static VTT_ENTRY vtt_ee22[] = {
+ {&(_ZTV4ee22[3]), 3,8},
+ {&(_ZTV4ee22[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee22[];
+extern VTBL_ENTRY _ZTV4ee22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee22[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee223fooEv,_ZTv0_n12_N4ee223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee223fooEv,_ZThn12_N4ee223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22 = { "ee22", // class name
+ bases_ee22, 2,
+ &(vtc_ee22[0]), // expected_vtbl_contents
+ &(vtt_ee22[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee22),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee22),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee22),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff22 : virtual cc22 , dd22 {
+ int f;
+ ff22(const ABISELECT(__tsi64,int) *const *); // _ZN4ff22C2Ev
+ virtual void foo(); // _ZN4ff223fooEv
+ ~ff22(); // tgen
+ ff22(); // tgen
+};
+//SIG(-1 ff22) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff22 ::ff22(const ABISELECT(__tsi64,int) *const *){}
+void ff22 ::foo(){vfunc_called(this, "_ZN4ff223fooEv");}
+ff22 ::~ff22(){ note_dtor("ff22", this);} // tgen
+ff22 ::ff22(){ note_ctor("ff22", this);} // tgen
+
+static void Test_ff22()
+{
+ extern Class_Descriptor cd_ff22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff22, buf);
+ ff22 *dp, &lv = *(dp=new (buf) ff22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff22)");
+ check_base_class_offset(lv, (cc22*), ABISELECT(16,12), "ff22");
+ check_base_class_offset(lv, (dd22*), 0, "ff22");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff22.f");
+ test_class_info(&lv, &cd_ff22);
+ dp->~ff22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff22(Test_ff22, "ff22", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff22C1Ev();
+extern void _ZN4ff22D1Ev();
+Name_Map name_map_ff22[] = {
+ NSPAIR(_ZN4ff22C1Ev),
+ NSPAIR(_ZN4ff22D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc22;
+extern VTBL_ENTRY _ZTI4cc22[];
+extern VTBL_ENTRY _ZTV4cc22[];
+extern Class_Descriptor cd_dd22;
+extern VTBL_ENTRY _ZTI4dd22[];
+extern VTBL_ENTRY _ZTV4dd22[];
+static Base_Class bases_ff22[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc22, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff22[];
+extern void _ZN4ff223fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff223fooEv,_ZTv0_n12_N4ff223fooEv)();
+extern void ABISELECT(_ZThn16_N4ff223fooEv,_ZThn12_N4ff223fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff22[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff22[0]),
+ (VTBL_ENTRY)&_ZN4ff223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff223fooEv,_ZTv0_n12_N4ff223fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff22[];
+static VTT_ENTRY vtt_ff22[] = {
+ {&(_ZTV4ff22[3]), 3,8},
+ {&(_ZTV4ff22[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff22[];
+extern VTBL_ENTRY _ZTV4ff22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff22[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff223fooEv,_ZTv0_n12_N4ff223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff223fooEv,_ZThn12_N4ff223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff22 = { "ff22", // class name
+ bases_ff22, 2,
+ &(vtc_ff22[0]), // expected_vtbl_contents
+ &(vtt_ff22[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff22),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff22),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff22),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg22 : virtual ee22 , ff22 {
+ int g;
+ gg22(const ABISELECT(__tsi64,int) *const *); // _ZN4gg22C2Ev
+ virtual void foo(); // _ZN4gg223fooEv
+ ~gg22(); // tgen
+ gg22(); // tgen
+};
+//SIG(1 gg22) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg22 ::gg22(const ABISELECT(__tsi64,int) *const *){}
+void gg22 ::foo(){vfunc_called(this, "_ZN4gg223fooEv");}
+gg22 ::~gg22(){ note_dtor("gg22", this);} // tgen
+gg22 ::gg22(){ note_ctor("gg22", this);} // tgen
+
+static void Test_gg22()
+{
+ extern Class_Descriptor cd_gg22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg22, buf);
+ gg22 *dp, &lv = *(dp=new (buf) gg22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg22)");
+ check_base_class_offset(lv, (aa22*)(ee22*), ABISELECT(24,16), "gg22");
+ check_base_class_offset(lv, (bb22*)(ee22*), ABISELECT(40,28), "gg22");
+ check_base_class_offset(lv, (ee22*), ABISELECT(24,16), "gg22");
+ check_base_class_offset(lv, (cc22*)(ff22*), ABISELECT(56,36), "gg22");
+ check_base_class_offset(lv, (dd22*)(ff22*), 0, "gg22");
+ check_base_class_offset(lv, (ff22*), 0, "gg22");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg22.g");
+ test_class_info(&lv, &cd_gg22);
+ dp->~gg22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg22(Test_gg22, "gg22", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg22C1Ev();
+extern void _ZN4gg22D1Ev();
+Name_Map name_map_gg22[] = {
+ NSPAIR(_ZN4gg22C1Ev),
+ NSPAIR(_ZN4gg22D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa22;
+extern VTBL_ENTRY _ZTI4aa22[];
+extern VTBL_ENTRY _ZTV4aa22[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_ee22;
+extern VTBL_ENTRY _ZTI4ee22[];
+extern VTBL_ENTRY _ZTV4ee22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee22[];
+extern Class_Descriptor cd_cc22;
+extern VTBL_ENTRY _ZTI4cc22[];
+extern VTBL_ENTRY _ZTV4cc22[];
+extern Class_Descriptor cd_dd22;
+extern VTBL_ENTRY _ZTI4dd22[];
+extern VTBL_ENTRY _ZTV4dd22[];
+extern Class_Descriptor cd_ff22;
+extern VTBL_ENTRY _ZTI4ff22[];
+extern VTBL_ENTRY _ZTV4ff22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff22[];
+static Base_Class bases_gg22[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa22, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(40,28), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee22, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc22, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg22[];
+extern void _ZN4gg223fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg223fooEv,_ZTv0_n16_N4gg223fooEv)();
+extern void ABISELECT(_ZThn24_N4gg223fooEv,_ZThn16_N4gg223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg223fooEv,_ZTv0_n12_N4gg223fooEv)();
+extern void ABISELECT(_ZThn40_N4gg223fooEv,_ZThn28_N4gg223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg223fooEv,_ZTv0_n12_N4gg223fooEv)();
+extern void ABISELECT(_ZThn56_N4gg223fooEv,_ZThn36_N4gg223fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg22[] = {
+ ABISELECT(40,28),
+ ABISELECT(24,16),
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg22[0]),
+ (VTBL_ENTRY)&_ZN4gg223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,12),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg223fooEv,_ZTv0_n16_N4gg223fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI4gg22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg223fooEv,_ZTv0_n12_N4gg223fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg223fooEv,_ZTv0_n12_N4gg223fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg22[];
+extern void _ZN4ff223fooEv();
+static VTBL_ENTRY _tg__ZTV4ff22__4gg22[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff22[0]),
+ (VTBL_ENTRY)&_ZN4ff223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff223fooEv,_ZTv0_n12_N4ff223fooEv)();
+extern void ABISELECT(_ZThn56_N4ff223fooEv,_ZThn36_N4ff223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc22__4ff22__4gg22[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4ff22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff223fooEv,_ZTv0_n12_N4ff223fooEv),
+};
+extern void _ZN4ee223fooEv();
+static VTBL_ENTRY _tg__ZTV4ee22__4gg22[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee22[0]),
+ (VTBL_ENTRY)&_ZN4ee223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee223fooEv,_ZTv0_n12_N4ee223fooEv)();
+extern void ABISELECT(_ZThn16_N4ee223fooEv,_ZThn12_N4ee223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__4ee22__4gg22[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee223fooEv,_ZTv0_n12_N4ee223fooEv),
+};
+static VTT_ENTRY vtt_gg22[] = {
+ {&(_ZTV4gg22[5]), 5,19},
+ {&(_tg__ZTV4ff22__4gg22[3]), 3,4},
+ {&(_tg__ZTV4cc22__4ff22__4gg22[3]), 3,4},
+ {&(_ZTV4gg22[10]), 10,19},
+ {&(_ZTV4gg22[14]), 14,19},
+ {&(_ZTV4gg22[18]), 18,19},
+ {&(_tg__ZTV4ee22__4gg22[3]), 3,4},
+ {&(_tg__ZTV4bb22__4ee22__4gg22[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg22[];
+extern VTBL_ENTRY _ZTV4gg22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg22[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee223fooEv,_ZTv0_n12_N4ee223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee223fooEv,_ZThn12_N4ee223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff223fooEv,_ZTv0_n12_N4ff223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff223fooEv,_ZThn36_N4ff223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg223fooEv,_ZTv0_n12_N4gg223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg223fooEv,_ZThn36_N4gg223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg223fooEv,_ZThn28_N4gg223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg223fooEv,_ZTv0_n16_N4gg223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg223fooEv,_ZThn16_N4gg223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg22 = { "gg22", // class name
+ bases_gg22, 6,
+ &(vtc_gg22[0]), // expected_vtbl_contents
+ &(vtt_gg22[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg22),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg22),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg22),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa23 {
+ int a;
+ aa23(); // _ZN4aa23C1Ev
+ virtual void foo(); // _ZN4aa233fooEv
+ ~aa23(); // tgen
+};
+//SIG(-1 aa23) C1{ v1 Fi}
+
+
+ aa23 ::aa23(){ note_ctor("aa23", this);}
+void aa23 ::foo(){vfunc_called(this, "_ZN4aa233fooEv");}
+aa23 ::~aa23(){ note_dtor("aa23", this);} // tgen
+
+static void Test_aa23()
+{
+ extern Class_Descriptor cd_aa23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa23, buf);
+ aa23 *dp, &lv = *(dp=new (buf) aa23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa23)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa23.a");
+ test_class_info(&lv, &cd_aa23);
+ dp->~aa23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa23(Test_aa23, "aa23", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa23C1Ev();
+extern void _ZN4aa23D1Ev();
+Name_Map name_map_aa23[] = {
+ NSPAIR(_ZN4aa23C1Ev),
+ NSPAIR(_ZN4aa23D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa23[];
+extern void _ZN4aa233fooEv();
+static VTBL_ENTRY vtc_aa23[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa23[0]),
+ (VTBL_ENTRY)&_ZN4aa233fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa23[];
+extern VTBL_ENTRY _ZTV4aa23[];
+Class_Descriptor cd_aa23 = { "aa23", // class name
+ 0,0,//no base classes
+ &(vtc_aa23[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa23),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa23),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb23 {
+ int b;
+ bb23(); // _ZN4bb23C1Ev
+ virtual void foo(); // _ZN4bb233fooEv
+ ~bb23(); // tgen
+};
+//SIG(-1 bb23) C1{ v1 Fi}
+
+
+ bb23 ::bb23(){ note_ctor("bb23", this);}
+void bb23 ::foo(){vfunc_called(this, "_ZN4bb233fooEv");}
+bb23 ::~bb23(){ note_dtor("bb23", this);} // tgen
+
+static void Test_bb23()
+{
+ extern Class_Descriptor cd_bb23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb23, buf);
+ bb23 *dp, &lv = *(dp=new (buf) bb23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb23)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb23.b");
+ test_class_info(&lv, &cd_bb23);
+ dp->~bb23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb23(Test_bb23, "bb23", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb23C1Ev();
+extern void _ZN4bb23D1Ev();
+Name_Map name_map_bb23[] = {
+ NSPAIR(_ZN4bb23C1Ev),
+ NSPAIR(_ZN4bb23D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb23[];
+extern void _ZN4bb233fooEv();
+static VTBL_ENTRY vtc_bb23[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb23[0]),
+ (VTBL_ENTRY)&_ZN4bb233fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb23[];
+extern VTBL_ENTRY _ZTV4bb23[];
+Class_Descriptor cd_bb23 = { "bb23", // class name
+ 0,0,//no base classes
+ &(vtc_bb23[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb23),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb23),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc23 {
+ int c;
+ cc23(); // _ZN4cc23C1Ev
+ virtual void foo(); // _ZN4cc233fooEv
+ ~cc23(); // tgen
+};
+//SIG(-1 cc23) C1{ v1 Fi}
+
+
+ cc23 ::cc23(){ note_ctor("cc23", this);}
+void cc23 ::foo(){vfunc_called(this, "_ZN4cc233fooEv");}
+cc23 ::~cc23(){ note_dtor("cc23", this);} // tgen
+
+static void Test_cc23()
+{
+ extern Class_Descriptor cd_cc23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc23, buf);
+ cc23 *dp, &lv = *(dp=new (buf) cc23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc23)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc23.c");
+ test_class_info(&lv, &cd_cc23);
+ dp->~cc23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc23(Test_cc23, "cc23", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc23C1Ev();
+extern void _ZN4cc23D1Ev();
+Name_Map name_map_cc23[] = {
+ NSPAIR(_ZN4cc23C1Ev),
+ NSPAIR(_ZN4cc23D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc23[];
+extern void _ZN4cc233fooEv();
+static VTBL_ENTRY vtc_cc23[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc23[0]),
+ (VTBL_ENTRY)&_ZN4cc233fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc23[];
+extern VTBL_ENTRY _ZTV4cc23[];
+Class_Descriptor cd_cc23 = { "cc23", // class name
+ 0,0,//no base classes
+ &(vtc_cc23[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc23),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc23),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd23 {
+ int d;
+ dd23(); // _ZN4dd23C1Ev
+ virtual void foo(); // _ZN4dd233fooEv
+ ~dd23(); // tgen
+};
+//SIG(-1 dd23) C1{ v1 Fi}
+
+
+ dd23 ::dd23(){ note_ctor("dd23", this);}
+void dd23 ::foo(){vfunc_called(this, "_ZN4dd233fooEv");}
+dd23 ::~dd23(){ note_dtor("dd23", this);} // tgen
+
+static void Test_dd23()
+{
+ extern Class_Descriptor cd_dd23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd23, buf);
+ dd23 *dp, &lv = *(dp=new (buf) dd23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd23)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd23.d");
+ test_class_info(&lv, &cd_dd23);
+ dp->~dd23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd23(Test_dd23, "dd23", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd23C1Ev();
+extern void _ZN4dd23D1Ev();
+Name_Map name_map_dd23[] = {
+ NSPAIR(_ZN4dd23C1Ev),
+ NSPAIR(_ZN4dd23D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd23[];
+extern void _ZN4dd233fooEv();
+static VTBL_ENTRY vtc_dd23[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd23[0]),
+ (VTBL_ENTRY)&_ZN4dd233fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd23[];
+extern VTBL_ENTRY _ZTV4dd23[];
+Class_Descriptor cd_dd23 = { "dd23", // class name
+ 0,0,//no base classes
+ &(vtc_dd23[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd23),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd23),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23 : virtual aa23 , virtual bb23 {
+ int e;
+ ee23(const ABISELECT(__tsi64,int) *const *); // _ZN4ee23C2Ev
+ virtual void foo(); // _ZN4ee233fooEv
+ ~ee23(); // tgen
+ ee23(); // tgen
+};
+//SIG(-1 ee23) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee23 ::ee23(const ABISELECT(__tsi64,int) *const *){}
+void ee23 ::foo(){vfunc_called(this, "_ZN4ee233fooEv");}
+ee23 ::~ee23(){ note_dtor("ee23", this);} // tgen
+ee23 ::ee23(){ note_ctor("ee23", this);} // tgen
+
+static void Test_ee23()
+{
+ extern Class_Descriptor cd_ee23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee23, buf);
+ ee23 *dp, &lv = *(dp=new (buf) ee23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23)");
+ check_base_class_offset(lv, (aa23*), ABISELECT(16,8), "ee23");
+ check_base_class_offset(lv, (bb23*), ABISELECT(32,16), "ee23");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee23.e");
+ test_class_info(&lv, &cd_ee23);
+ dp->~ee23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23(Test_ee23, "ee23", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee23C1Ev();
+extern void _ZN4ee23D1Ev();
+Name_Map name_map_ee23[] = {
+ NSPAIR(_ZN4ee23C1Ev),
+ NSPAIR(_ZN4ee23D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa23;
+extern VTBL_ENTRY _ZTI4aa23[];
+extern VTBL_ENTRY _ZTV4aa23[];
+extern Class_Descriptor cd_bb23;
+extern VTBL_ENTRY _ZTI4bb23[];
+extern VTBL_ENTRY _ZTV4bb23[];
+static Base_Class bases_ee23[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa23, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb23, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee23[];
+extern void _ZN4ee233fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv)();
+extern void ABISELECT(_ZThn16_N4ee233fooEv,_ZThn8_N4ee233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv)();
+extern void ABISELECT(_ZThn32_N4ee233fooEv,_ZThn16_N4ee233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee23[0]),
+ (VTBL_ENTRY)&_ZN4ee233fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee23[];
+static VTT_ENTRY vtt_ee23[] = {
+ {&(_ZTV4ee23[4]), 4,13},
+ {&(_ZTV4ee23[8]), 8,13},
+ {&(_ZTV4ee23[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee23[];
+extern VTBL_ENTRY _ZTV4ee23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee23[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee233fooEv,_ZThn16_N4ee233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee233fooEv,_ZThn8_N4ee233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23 = { "ee23", // class name
+ bases_ee23, 2,
+ &(vtc_ee23[0]), // expected_vtbl_contents
+ &(vtt_ee23[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee23),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee23),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee23),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names55,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff23 : virtual cc23 , dd23 {
+ int f;
+ ff23(const ABISELECT(__tsi64,int) *const *); // _ZN4ff23C2Ev
+ virtual void foo(); // _ZN4ff233fooEv
+ ~ff23(); // tgen
+ ff23(); // tgen
+};
+//SIG(-1 ff23) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff23 ::ff23(const ABISELECT(__tsi64,int) *const *){}
+void ff23 ::foo(){vfunc_called(this, "_ZN4ff233fooEv");}
+ff23 ::~ff23(){ note_dtor("ff23", this);} // tgen
+ff23 ::ff23(){ note_ctor("ff23", this);} // tgen
+
+static void Test_ff23()
+{
+ extern Class_Descriptor cd_ff23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff23, buf);
+ ff23 *dp, &lv = *(dp=new (buf) ff23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff23)");
+ check_base_class_offset(lv, (cc23*), ABISELECT(16,12), "ff23");
+ check_base_class_offset(lv, (dd23*), 0, "ff23");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff23.f");
+ test_class_info(&lv, &cd_ff23);
+ dp->~ff23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff23(Test_ff23, "ff23", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff23C1Ev();
+extern void _ZN4ff23D1Ev();
+Name_Map name_map_ff23[] = {
+ NSPAIR(_ZN4ff23C1Ev),
+ NSPAIR(_ZN4ff23D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc23;
+extern VTBL_ENTRY _ZTI4cc23[];
+extern VTBL_ENTRY _ZTV4cc23[];
+extern Class_Descriptor cd_dd23;
+extern VTBL_ENTRY _ZTI4dd23[];
+extern VTBL_ENTRY _ZTV4dd23[];
+static Base_Class bases_ff23[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc23, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd23, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff23[];
+extern void _ZN4ff233fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff233fooEv,_ZTv0_n12_N4ff233fooEv)();
+extern void ABISELECT(_ZThn16_N4ff233fooEv,_ZThn12_N4ff233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff23[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff23[0]),
+ (VTBL_ENTRY)&_ZN4ff233fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff233fooEv,_ZTv0_n12_N4ff233fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff23[];
+static VTT_ENTRY vtt_ff23[] = {
+ {&(_ZTV4ff23[3]), 3,8},
+ {&(_ZTV4ff23[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff23[];
+extern VTBL_ENTRY _ZTV4ff23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff23[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff233fooEv,_ZTv0_n12_N4ff233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff233fooEv,_ZThn12_N4ff233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff23 = { "ff23", // class name
+ bases_ff23, 2,
+ &(vtc_ff23[0]), // expected_vtbl_contents
+ &(vtt_ff23[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff23),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff23),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff23),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names56,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg23 : virtual ee23 , ff23 {
+ int g;
+ gg23(const ABISELECT(__tsi64,int) *const *); // _ZN4gg23C2Ev
+ virtual void foo(); // _ZN4gg233fooEv
+ ~gg23(); // tgen
+ gg23(); // tgen
+};
+//SIG(1 gg23) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg23 ::gg23(const ABISELECT(__tsi64,int) *const *){}
+void gg23 ::foo(){vfunc_called(this, "_ZN4gg233fooEv");}
+gg23 ::~gg23(){ note_dtor("gg23", this);} // tgen
+gg23 ::gg23(){ note_ctor("gg23", this);} // tgen
+
+static void Test_gg23()
+{
+ extern Class_Descriptor cd_gg23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg23, buf);
+ gg23 *dp, &lv = *(dp=new (buf) gg23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg23)");
+ check_base_class_offset(lv, (aa23*)(ee23*), ABISELECT(40,24), "gg23");
+ check_base_class_offset(lv, (bb23*)(ee23*), ABISELECT(56,32), "gg23");
+ check_base_class_offset(lv, (ee23*), ABISELECT(24,16), "gg23");
+ check_base_class_offset(lv, (cc23*)(ff23*), ABISELECT(72,40), "gg23");
+ check_base_class_offset(lv, (dd23*)(ff23*), 0, "gg23");
+ check_base_class_offset(lv, (ff23*), 0, "gg23");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg23.g");
+ test_class_info(&lv, &cd_gg23);
+ dp->~gg23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg23(Test_gg23, "gg23", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg23C1Ev();
+extern void _ZN4gg23D1Ev();
+Name_Map name_map_gg23[] = {
+ NSPAIR(_ZN4gg23C1Ev),
+ NSPAIR(_ZN4gg23D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa23;
+extern VTBL_ENTRY _ZTI4aa23[];
+extern VTBL_ENTRY _ZTV4aa23[];
+extern Class_Descriptor cd_bb23;
+extern VTBL_ENTRY _ZTI4bb23[];
+extern VTBL_ENTRY _ZTV4bb23[];
+extern Class_Descriptor cd_ee23;
+extern VTBL_ENTRY _ZTI4ee23[];
+extern VTBL_ENTRY _ZTV4ee23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee23[];
+extern Class_Descriptor cd_cc23;
+extern VTBL_ENTRY _ZTI4cc23[];
+extern VTBL_ENTRY _ZTV4cc23[];
+extern Class_Descriptor cd_dd23;
+extern VTBL_ENTRY _ZTI4dd23[];
+extern VTBL_ENTRY _ZTV4dd23[];
+extern Class_Descriptor cd_ff23;
+extern VTBL_ENTRY _ZTI4ff23[];
+extern VTBL_ENTRY _ZTV4ff23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff23[];
+static Base_Class bases_gg23[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa23, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb23, ABISELECT(56,32), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee23, ABISELECT(24,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc23, ABISELECT(72,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd23, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff23, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg23[];
+extern void _ZN4gg233fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg233fooEv,_ZTv0_n20_N4gg233fooEv)();
+extern void ABISELECT(_ZThn24_N4gg233fooEv,_ZThn16_N4gg233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv)();
+extern void ABISELECT(_ZThn40_N4gg233fooEv,_ZThn24_N4gg233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv)();
+extern void ABISELECT(_ZThn56_N4gg233fooEv,_ZThn32_N4gg233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv)();
+extern void ABISELECT(_ZThn72_N4gg233fooEv,_ZThn40_N4gg233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg23[] = {
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ ABISELECT(72,40),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg23[0]),
+ (VTBL_ENTRY)&_ZN4gg233fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg233fooEv,_ZTv0_n20_N4gg233fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg23[];
+extern void _ZN4ff233fooEv();
+static VTBL_ENTRY _tg__ZTV4ff23__4gg23[] = {
+ ABISELECT(72,40),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff23[0]),
+ (VTBL_ENTRY)&_ZN4ff233fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff233fooEv,_ZTv0_n12_N4ff233fooEv)();
+extern void ABISELECT(_ZThn72_N4ff233fooEv,_ZThn40_N4ff233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc23__4ff23__4gg23[] = {
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4ff23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff233fooEv,_ZTv0_n12_N4ff233fooEv),
+};
+extern void _ZN4ee233fooEv();
+static VTBL_ENTRY _tg__ZTV4ee23__4gg23[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee23[0]),
+ (VTBL_ENTRY)&_ZN4ee233fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv)();
+extern void ABISELECT(_ZThn16_N4ee233fooEv,_ZThn8_N4ee233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa23__4ee23__4gg23[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv)();
+extern void ABISELECT(_ZThn32_N4ee233fooEv,_ZThn16_N4ee233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb23__4ee23__4gg23[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv),
+};
+static VTT_ENTRY vtt_gg23[] = {
+ {&(_ZTV4gg23[6]), 6,25},
+ {&(_tg__ZTV4ff23__4gg23[3]), 3,4},
+ {&(_tg__ZTV4cc23__4ff23__4gg23[3]), 3,4},
+ {&(_ZTV4gg23[12]), 12,25},
+ {&(_ZTV4gg23[16]), 16,25},
+ {&(_ZTV4gg23[20]), 20,25},
+ {&(_ZTV4gg23[24]), 24,25},
+ {&(_tg__ZTV4ee23__4gg23[4]), 4,5},
+ {&(_tg__ZTV4aa23__4ee23__4gg23[3]), 3,4},
+ {&(_tg__ZTV4bb23__4ee23__4gg23[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg23[];
+extern VTBL_ENTRY _ZTV4gg23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg23[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee233fooEv,_ZTv0_n12_N4ee233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee233fooEv,_ZThn16_N4ee233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee233fooEv,_ZThn8_N4ee233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff233fooEv,_ZTv0_n12_N4ff233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4ff233fooEv,_ZThn40_N4ff233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg233fooEv,_ZTv0_n12_N4gg233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg233fooEv,_ZThn40_N4gg233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg233fooEv,_ZThn32_N4gg233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg233fooEv,_ZThn24_N4gg233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg233fooEv,_ZTv0_n20_N4gg233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg233fooEv,_ZThn16_N4gg233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg23 = { "gg23", // class name
+ bases_gg23, 6,
+ &(vtc_gg23[0]), // expected_vtbl_contents
+ &(vtt_gg23[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg23),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg23),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg23),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names57,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa24 {
+ int a;
+ aa24(); // _ZN4aa24C1Ev
+ virtual void foo(); // _ZN4aa243fooEv
+ ~aa24(); // tgen
+};
+//SIG(-1 aa24) C1{ v1 Fi}
+
+
+ aa24 ::aa24(){ note_ctor("aa24", this);}
+void aa24 ::foo(){vfunc_called(this, "_ZN4aa243fooEv");}
+aa24 ::~aa24(){ note_dtor("aa24", this);} // tgen
+
+static void Test_aa24()
+{
+ extern Class_Descriptor cd_aa24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa24, buf);
+ aa24 *dp, &lv = *(dp=new (buf) aa24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa24)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa24.a");
+ test_class_info(&lv, &cd_aa24);
+ dp->~aa24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa24(Test_aa24, "aa24", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa24C1Ev();
+extern void _ZN4aa24D1Ev();
+Name_Map name_map_aa24[] = {
+ NSPAIR(_ZN4aa24C1Ev),
+ NSPAIR(_ZN4aa24D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa24[];
+extern void _ZN4aa243fooEv();
+static VTBL_ENTRY vtc_aa24[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa24[0]),
+ (VTBL_ENTRY)&_ZN4aa243fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa24[];
+extern VTBL_ENTRY _ZTV4aa24[];
+Class_Descriptor cd_aa24 = { "aa24", // class name
+ 0,0,//no base classes
+ &(vtc_aa24[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa24),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa24),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb24 {
+ int b;
+ bb24(); // _ZN4bb24C1Ev
+ virtual void foo(); // _ZN4bb243fooEv
+ ~bb24(); // tgen
+};
+//SIG(-1 bb24) C1{ v1 Fi}
+
+
+ bb24 ::bb24(){ note_ctor("bb24", this);}
+void bb24 ::foo(){vfunc_called(this, "_ZN4bb243fooEv");}
+bb24 ::~bb24(){ note_dtor("bb24", this);} // tgen
+
+static void Test_bb24()
+{
+ extern Class_Descriptor cd_bb24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb24, buf);
+ bb24 *dp, &lv = *(dp=new (buf) bb24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb24)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb24.b");
+ test_class_info(&lv, &cd_bb24);
+ dp->~bb24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb24(Test_bb24, "bb24", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb24C1Ev();
+extern void _ZN4bb24D1Ev();
+Name_Map name_map_bb24[] = {
+ NSPAIR(_ZN4bb24C1Ev),
+ NSPAIR(_ZN4bb24D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb24[];
+extern void _ZN4bb243fooEv();
+static VTBL_ENTRY vtc_bb24[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb24[0]),
+ (VTBL_ENTRY)&_ZN4bb243fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb24[];
+extern VTBL_ENTRY _ZTV4bb24[];
+Class_Descriptor cd_bb24 = { "bb24", // class name
+ 0,0,//no base classes
+ &(vtc_bb24[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb24),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb24),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc24 {
+ int c;
+ cc24(); // _ZN4cc24C1Ev
+ virtual void foo(); // _ZN4cc243fooEv
+ ~cc24(); // tgen
+};
+//SIG(-1 cc24) C1{ v1 Fi}
+
+
+ cc24 ::cc24(){ note_ctor("cc24", this);}
+void cc24 ::foo(){vfunc_called(this, "_ZN4cc243fooEv");}
+cc24 ::~cc24(){ note_dtor("cc24", this);} // tgen
+
+static void Test_cc24()
+{
+ extern Class_Descriptor cd_cc24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc24, buf);
+ cc24 *dp, &lv = *(dp=new (buf) cc24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc24)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc24.c");
+ test_class_info(&lv, &cd_cc24);
+ dp->~cc24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc24(Test_cc24, "cc24", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc24C1Ev();
+extern void _ZN4cc24D1Ev();
+Name_Map name_map_cc24[] = {
+ NSPAIR(_ZN4cc24C1Ev),
+ NSPAIR(_ZN4cc24D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc24[];
+extern void _ZN4cc243fooEv();
+static VTBL_ENTRY vtc_cc24[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc24[0]),
+ (VTBL_ENTRY)&_ZN4cc243fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc24[];
+extern VTBL_ENTRY _ZTV4cc24[];
+Class_Descriptor cd_cc24 = { "cc24", // class name
+ 0,0,//no base classes
+ &(vtc_cc24[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc24),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc24),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd24 {
+ int d;
+ dd24(); // _ZN4dd24C1Ev
+ virtual void foo(); // _ZN4dd243fooEv
+ ~dd24(); // tgen
+};
+//SIG(-1 dd24) C1{ v1 Fi}
+
+
+ dd24 ::dd24(){ note_ctor("dd24", this);}
+void dd24 ::foo(){vfunc_called(this, "_ZN4dd243fooEv");}
+dd24 ::~dd24(){ note_dtor("dd24", this);} // tgen
+
+static void Test_dd24()
+{
+ extern Class_Descriptor cd_dd24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd24, buf);
+ dd24 *dp, &lv = *(dp=new (buf) dd24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd24)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd24.d");
+ test_class_info(&lv, &cd_dd24);
+ dp->~dd24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd24(Test_dd24, "dd24", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd24C1Ev();
+extern void _ZN4dd24D1Ev();
+Name_Map name_map_dd24[] = {
+ NSPAIR(_ZN4dd24C1Ev),
+ NSPAIR(_ZN4dd24D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd24[];
+extern void _ZN4dd243fooEv();
+static VTBL_ENTRY vtc_dd24[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd24[0]),
+ (VTBL_ENTRY)&_ZN4dd243fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd24[];
+extern VTBL_ENTRY _ZTV4dd24[];
+Class_Descriptor cd_dd24 = { "dd24", // class name
+ 0,0,//no base classes
+ &(vtc_dd24[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd24),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd24),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24 : aa24 , bb24 {
+ int e;
+ ee24(); // _ZN4ee24C1Ev
+ virtual void foo(); // _ZN4ee243fooEv
+ ~ee24(); // tgen
+};
+//SIG(-1 ee24) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee24 ::ee24(){ note_ctor("ee24", this);}
+void ee24 ::foo(){vfunc_called(this, "_ZN4ee243fooEv");}
+ee24 ::~ee24(){ note_dtor("ee24", this);} // tgen
+
+static void Test_ee24()
+{
+ extern Class_Descriptor cd_ee24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee24, buf);
+ ee24 *dp, &lv = *(dp=new (buf) ee24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24)");
+ check_base_class_offset(lv, (aa24*), 0, "ee24");
+ check_base_class_offset(lv, (bb24*), ABISELECT(16,8), "ee24");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee24.e");
+ test_class_info(&lv, &cd_ee24);
+ dp->~ee24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24(Test_ee24, "ee24", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee24C1Ev();
+extern void _ZN4ee24D1Ev();
+Name_Map name_map_ee24[] = {
+ NSPAIR(_ZN4ee24C1Ev),
+ NSPAIR(_ZN4ee24D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa24;
+extern VTBL_ENTRY _ZTI4aa24[];
+extern VTBL_ENTRY _ZTV4aa24[];
+extern Class_Descriptor cd_bb24;
+extern VTBL_ENTRY _ZTI4bb24[];
+extern VTBL_ENTRY _ZTV4bb24[];
+static Base_Class bases_ee24[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa24, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb24, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee24[];
+extern void _ZN4ee243fooEv();
+extern void ABISELECT(_ZThn16_N4ee243fooEv,_ZThn8_N4ee243fooEv)();
+static VTBL_ENTRY vtc_ee24[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee24[0]),
+ (VTBL_ENTRY)&_ZN4ee243fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee24[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee243fooEv,_ZThn8_N4ee243fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee24[];
+extern VTBL_ENTRY _ZTV4ee24[];
+Class_Descriptor cd_ee24 = { "ee24", // class name
+ bases_ee24, 2,
+ &(vtc_ee24[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee24),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee24),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff24 : cc24 , virtual dd24 {
+ int f;
+ ff24(const ABISELECT(__tsi64,int) *const *); // _ZN4ff24C2Ev
+ virtual void foo(); // _ZN4ff243fooEv
+ ~ff24(); // tgen
+ ff24(); // tgen
+};
+//SIG(-1 ff24) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff24 ::ff24(const ABISELECT(__tsi64,int) *const *){}
+void ff24 ::foo(){vfunc_called(this, "_ZN4ff243fooEv");}
+ff24 ::~ff24(){ note_dtor("ff24", this);} // tgen
+ff24 ::ff24(){ note_ctor("ff24", this);} // tgen
+
+static void Test_ff24()
+{
+ extern Class_Descriptor cd_ff24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff24, buf);
+ ff24 *dp, &lv = *(dp=new (buf) ff24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff24)");
+ check_base_class_offset(lv, (cc24*), 0, "ff24");
+ check_base_class_offset(lv, (dd24*), ABISELECT(16,12), "ff24");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff24.f");
+ test_class_info(&lv, &cd_ff24);
+ dp->~ff24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff24(Test_ff24, "ff24", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff24C1Ev();
+extern void _ZN4ff24D1Ev();
+Name_Map name_map_ff24[] = {
+ NSPAIR(_ZN4ff24C1Ev),
+ NSPAIR(_ZN4ff24D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc24;
+extern VTBL_ENTRY _ZTI4cc24[];
+extern VTBL_ENTRY _ZTV4cc24[];
+extern Class_Descriptor cd_dd24;
+extern VTBL_ENTRY _ZTI4dd24[];
+extern VTBL_ENTRY _ZTV4dd24[];
+static Base_Class bases_ff24[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc24, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd24, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff24[];
+extern void _ZN4ff243fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff243fooEv,_ZTv0_n12_N4ff243fooEv)();
+extern void ABISELECT(_ZThn16_N4ff243fooEv,_ZThn12_N4ff243fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff24[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff24[0]),
+ (VTBL_ENTRY)&_ZN4ff243fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff24[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff243fooEv,_ZTv0_n12_N4ff243fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff24[];
+static VTT_ENTRY vtt_ff24[] = {
+ {&(_ZTV4ff24[3]), 3,8},
+ {&(_ZTV4ff24[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff24[];
+extern VTBL_ENTRY _ZTV4ff24[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff24[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff243fooEv,_ZTv0_n12_N4ff243fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff243fooEv,_ZThn12_N4ff243fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff24 = { "ff24", // class name
+ bases_ff24, 2,
+ &(vtc_ff24[0]), // expected_vtbl_contents
+ &(vtt_ff24[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff24),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff24),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff24),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names58,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg24 : virtual ee24 , ff24 {
+ int g;
+ gg24(const ABISELECT(__tsi64,int) *const *); // _ZN4gg24C2Ev
+ virtual void foo(); // _ZN4gg243fooEv
+ ~gg24(); // tgen
+ gg24(); // tgen
+};
+//SIG(1 gg24) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg24 ::gg24(const ABISELECT(__tsi64,int) *const *){}
+void gg24 ::foo(){vfunc_called(this, "_ZN4gg243fooEv");}
+gg24 ::~gg24(){ note_dtor("gg24", this);} // tgen
+gg24 ::gg24(){ note_ctor("gg24", this);} // tgen
+
+static void Test_gg24()
+{
+ extern Class_Descriptor cd_gg24;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg24, buf);
+ gg24 *dp, &lv = *(dp=new (buf) gg24());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg24)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg24)");
+ check_base_class_offset(lv, (aa24*)(ee24*), ABISELECT(24,16), "gg24");
+ check_base_class_offset(lv, (bb24*)(ee24*), ABISELECT(40,24), "gg24");
+ check_base_class_offset(lv, (ee24*), ABISELECT(24,16), "gg24");
+ check_base_class_offset(lv, (cc24*)(ff24*), 0, "gg24");
+ check_base_class_offset(lv, (dd24*)(ff24*), ABISELECT(56,36), "gg24");
+ check_base_class_offset(lv, (ff24*), 0, "gg24");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg24.g");
+ test_class_info(&lv, &cd_gg24);
+ dp->~gg24();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg24(Test_gg24, "gg24", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg24C1Ev();
+extern void _ZN4gg24D1Ev();
+Name_Map name_map_gg24[] = {
+ NSPAIR(_ZN4gg24C1Ev),
+ NSPAIR(_ZN4gg24D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa24;
+extern VTBL_ENTRY _ZTI4aa24[];
+extern VTBL_ENTRY _ZTV4aa24[];
+extern Class_Descriptor cd_bb24;
+extern VTBL_ENTRY _ZTI4bb24[];
+extern VTBL_ENTRY _ZTV4bb24[];
+extern Class_Descriptor cd_ee24;
+extern VTBL_ENTRY _ZTI4ee24[];
+extern VTBL_ENTRY _ZTV4ee24[];
+extern Class_Descriptor cd_cc24;
+extern VTBL_ENTRY _ZTI4cc24[];
+extern VTBL_ENTRY _ZTV4cc24[];
+extern Class_Descriptor cd_dd24;
+extern VTBL_ENTRY _ZTI4dd24[];
+extern VTBL_ENTRY _ZTV4dd24[];
+extern Class_Descriptor cd_ff24;
+extern VTBL_ENTRY _ZTI4ff24[];
+extern VTBL_ENTRY _ZTV4ff24[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff24[];
+static Base_Class bases_gg24[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa24, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb24, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee24, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc24, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd24, ABISELECT(56,36), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff24, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg24[];
+extern void _ZN4gg243fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg243fooEv,_ZTv0_n12_N4gg243fooEv)();
+extern void ABISELECT(_ZThn24_N4gg243fooEv,_ZThn16_N4gg243fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg243fooEv,_ZTvn8_n12_N4gg243fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg243fooEv,_ZTv0_n12_N4gg243fooEv)();
+extern void ABISELECT(_ZThn56_N4gg243fooEv,_ZThn36_N4gg243fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg24[] = {
+ ABISELECT(24,16),
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg24[0]),
+ (VTBL_ENTRY)&_ZN4gg243fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg24[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg243fooEv,_ZTv0_n12_N4gg243fooEv),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg24[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg243fooEv,_ZTvn8_n12_N4gg243fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg24[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg243fooEv,_ZTv0_n12_N4gg243fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg24[];
+extern void _ZN4ff243fooEv();
+static VTBL_ENTRY _tg__ZTV4ff24__4gg24[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff24[0]),
+ (VTBL_ENTRY)&_ZN4ff243fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff243fooEv,_ZTv0_n12_N4ff243fooEv)();
+extern void ABISELECT(_ZThn56_N4ff243fooEv,_ZThn36_N4ff243fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd24__4ff24__4gg24[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4ff24[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff243fooEv,_ZTv0_n12_N4ff243fooEv),
+};
+static VTT_ENTRY vtt_gg24[] = {
+ {&(_ZTV4gg24[4]), 4,16},
+ {&(_tg__ZTV4ff24__4gg24[3]), 3,4},
+ {&(_tg__ZTV4dd24__4ff24__4gg24[3]), 3,4},
+ {&(_ZTV4gg24[8]), 8,16},
+ {&(_ZTV4gg24[11]), 11,16},
+ {&(_ZTV4gg24[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI4gg24[];
+extern VTBL_ENTRY _ZTV4gg24[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg24[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff243fooEv,_ZTv0_n12_N4ff243fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff243fooEv,_ZThn36_N4ff243fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg243fooEv,_ZTv0_n12_N4gg243fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg243fooEv,_ZThn36_N4gg243fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg243fooEv,_ZThn16_N4gg243fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg24 = { "gg24", // class name
+ bases_gg24, 6,
+ &(vtc_gg24[0]), // expected_vtbl_contents
+ &(vtt_gg24[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg24),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg24),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg24),6, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names59,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa25 {
+ int a;
+ aa25(); // _ZN4aa25C1Ev
+ virtual void foo(); // _ZN4aa253fooEv
+ ~aa25(); // tgen
+};
+//SIG(-1 aa25) C1{ v1 Fi}
+
+
+ aa25 ::aa25(){ note_ctor("aa25", this);}
+void aa25 ::foo(){vfunc_called(this, "_ZN4aa253fooEv");}
+aa25 ::~aa25(){ note_dtor("aa25", this);} // tgen
+
+static void Test_aa25()
+{
+ extern Class_Descriptor cd_aa25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa25, buf);
+ aa25 *dp, &lv = *(dp=new (buf) aa25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa25)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa25.a");
+ test_class_info(&lv, &cd_aa25);
+ dp->~aa25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa25(Test_aa25, "aa25", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa25C1Ev();
+extern void _ZN4aa25D1Ev();
+Name_Map name_map_aa25[] = {
+ NSPAIR(_ZN4aa25C1Ev),
+ NSPAIR(_ZN4aa25D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa25[];
+extern void _ZN4aa253fooEv();
+static VTBL_ENTRY vtc_aa25[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa25[0]),
+ (VTBL_ENTRY)&_ZN4aa253fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa25[];
+extern VTBL_ENTRY _ZTV4aa25[];
+Class_Descriptor cd_aa25 = { "aa25", // class name
+ 0,0,//no base classes
+ &(vtc_aa25[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa25),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa25),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb25 {
+ int b;
+ bb25(); // _ZN4bb25C1Ev
+ virtual void foo(); // _ZN4bb253fooEv
+ ~bb25(); // tgen
+};
+//SIG(-1 bb25) C1{ v1 Fi}
+
+
+ bb25 ::bb25(){ note_ctor("bb25", this);}
+void bb25 ::foo(){vfunc_called(this, "_ZN4bb253fooEv");}
+bb25 ::~bb25(){ note_dtor("bb25", this);} // tgen
+
+static void Test_bb25()
+{
+ extern Class_Descriptor cd_bb25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb25, buf);
+ bb25 *dp, &lv = *(dp=new (buf) bb25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb25)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb25.b");
+ test_class_info(&lv, &cd_bb25);
+ dp->~bb25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb25(Test_bb25, "bb25", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb25C1Ev();
+extern void _ZN4bb25D1Ev();
+Name_Map name_map_bb25[] = {
+ NSPAIR(_ZN4bb25C1Ev),
+ NSPAIR(_ZN4bb25D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb25[];
+extern void _ZN4bb253fooEv();
+static VTBL_ENTRY vtc_bb25[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb25[0]),
+ (VTBL_ENTRY)&_ZN4bb253fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb25[];
+extern VTBL_ENTRY _ZTV4bb25[];
+Class_Descriptor cd_bb25 = { "bb25", // class name
+ 0,0,//no base classes
+ &(vtc_bb25[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb25),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb25),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc25 {
+ int c;
+ cc25(); // _ZN4cc25C1Ev
+ virtual void foo(); // _ZN4cc253fooEv
+ ~cc25(); // tgen
+};
+//SIG(-1 cc25) C1{ v1 Fi}
+
+
+ cc25 ::cc25(){ note_ctor("cc25", this);}
+void cc25 ::foo(){vfunc_called(this, "_ZN4cc253fooEv");}
+cc25 ::~cc25(){ note_dtor("cc25", this);} // tgen
+
+static void Test_cc25()
+{
+ extern Class_Descriptor cd_cc25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc25, buf);
+ cc25 *dp, &lv = *(dp=new (buf) cc25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc25)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc25.c");
+ test_class_info(&lv, &cd_cc25);
+ dp->~cc25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc25(Test_cc25, "cc25", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc25C1Ev();
+extern void _ZN4cc25D1Ev();
+Name_Map name_map_cc25[] = {
+ NSPAIR(_ZN4cc25C1Ev),
+ NSPAIR(_ZN4cc25D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc25[];
+extern void _ZN4cc253fooEv();
+static VTBL_ENTRY vtc_cc25[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc25[0]),
+ (VTBL_ENTRY)&_ZN4cc253fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc25[];
+extern VTBL_ENTRY _ZTV4cc25[];
+Class_Descriptor cd_cc25 = { "cc25", // class name
+ 0,0,//no base classes
+ &(vtc_cc25[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc25),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc25),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd25 {
+ int d;
+ dd25(); // _ZN4dd25C1Ev
+ virtual void foo(); // _ZN4dd253fooEv
+ ~dd25(); // tgen
+};
+//SIG(-1 dd25) C1{ v1 Fi}
+
+
+ dd25 ::dd25(){ note_ctor("dd25", this);}
+void dd25 ::foo(){vfunc_called(this, "_ZN4dd253fooEv");}
+dd25 ::~dd25(){ note_dtor("dd25", this);} // tgen
+
+static void Test_dd25()
+{
+ extern Class_Descriptor cd_dd25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd25, buf);
+ dd25 *dp, &lv = *(dp=new (buf) dd25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd25)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd25.d");
+ test_class_info(&lv, &cd_dd25);
+ dp->~dd25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd25(Test_dd25, "dd25", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd25C1Ev();
+extern void _ZN4dd25D1Ev();
+Name_Map name_map_dd25[] = {
+ NSPAIR(_ZN4dd25C1Ev),
+ NSPAIR(_ZN4dd25D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd25[];
+extern void _ZN4dd253fooEv();
+static VTBL_ENTRY vtc_dd25[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd25[0]),
+ (VTBL_ENTRY)&_ZN4dd253fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd25[];
+extern VTBL_ENTRY _ZTV4dd25[];
+Class_Descriptor cd_dd25 = { "dd25", // class name
+ 0,0,//no base classes
+ &(vtc_dd25[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd25),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd25),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25 : virtual aa25 , bb25 {
+ int e;
+ ee25(const ABISELECT(__tsi64,int) *const *); // _ZN4ee25C2Ev
+ virtual void foo(); // _ZN4ee253fooEv
+ ~ee25(); // tgen
+ ee25(); // tgen
+};
+//SIG(-1 ee25) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee25 ::ee25(const ABISELECT(__tsi64,int) *const *){}
+void ee25 ::foo(){vfunc_called(this, "_ZN4ee253fooEv");}
+ee25 ::~ee25(){ note_dtor("ee25", this);} // tgen
+ee25 ::ee25(){ note_ctor("ee25", this);} // tgen
+
+static void Test_ee25()
+{
+ extern Class_Descriptor cd_ee25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee25, buf);
+ ee25 *dp, &lv = *(dp=new (buf) ee25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25)");
+ check_base_class_offset(lv, (aa25*), ABISELECT(16,12), "ee25");
+ check_base_class_offset(lv, (bb25*), 0, "ee25");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25.e");
+ test_class_info(&lv, &cd_ee25);
+ dp->~ee25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25(Test_ee25, "ee25", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee25C1Ev();
+extern void _ZN4ee25D1Ev();
+Name_Map name_map_ee25[] = {
+ NSPAIR(_ZN4ee25C1Ev),
+ NSPAIR(_ZN4ee25D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa25;
+extern VTBL_ENTRY _ZTI4aa25[];
+extern VTBL_ENTRY _ZTV4aa25[];
+extern Class_Descriptor cd_bb25;
+extern VTBL_ENTRY _ZTI4bb25[];
+extern VTBL_ENTRY _ZTV4bb25[];
+static Base_Class bases_ee25[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa25, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb25, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee25[];
+extern void _ZN4ee253fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee253fooEv,_ZTv0_n12_N4ee253fooEv)();
+extern void ABISELECT(_ZThn16_N4ee253fooEv,_ZThn12_N4ee253fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee25[0]),
+ (VTBL_ENTRY)&_ZN4ee253fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee253fooEv,_ZTv0_n12_N4ee253fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee25[];
+static VTT_ENTRY vtt_ee25[] = {
+ {&(_ZTV4ee25[3]), 3,8},
+ {&(_ZTV4ee25[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee25[];
+extern VTBL_ENTRY _ZTV4ee25[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee25[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee253fooEv,_ZTv0_n12_N4ee253fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee253fooEv,_ZThn12_N4ee253fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25 = { "ee25", // class name
+ bases_ee25, 2,
+ &(vtc_ee25[0]), // expected_vtbl_contents
+ &(vtt_ee25[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee25),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee25),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee25),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names60,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff25 : cc25 , virtual dd25 {
+ int f;
+ ff25(const ABISELECT(__tsi64,int) *const *); // _ZN4ff25C2Ev
+ virtual void foo(); // _ZN4ff253fooEv
+ ~ff25(); // tgen
+ ff25(); // tgen
+};
+//SIG(-1 ff25) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff25 ::ff25(const ABISELECT(__tsi64,int) *const *){}
+void ff25 ::foo(){vfunc_called(this, "_ZN4ff253fooEv");}
+ff25 ::~ff25(){ note_dtor("ff25", this);} // tgen
+ff25 ::ff25(){ note_ctor("ff25", this);} // tgen
+
+static void Test_ff25()
+{
+ extern Class_Descriptor cd_ff25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff25, buf);
+ ff25 *dp, &lv = *(dp=new (buf) ff25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff25)");
+ check_base_class_offset(lv, (cc25*), 0, "ff25");
+ check_base_class_offset(lv, (dd25*), ABISELECT(16,12), "ff25");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff25.f");
+ test_class_info(&lv, &cd_ff25);
+ dp->~ff25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff25(Test_ff25, "ff25", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff25C1Ev();
+extern void _ZN4ff25D1Ev();
+Name_Map name_map_ff25[] = {
+ NSPAIR(_ZN4ff25C1Ev),
+ NSPAIR(_ZN4ff25D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc25;
+extern VTBL_ENTRY _ZTI4cc25[];
+extern VTBL_ENTRY _ZTV4cc25[];
+extern Class_Descriptor cd_dd25;
+extern VTBL_ENTRY _ZTI4dd25[];
+extern VTBL_ENTRY _ZTV4dd25[];
+static Base_Class bases_ff25[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc25, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd25, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff25[];
+extern void _ZN4ff253fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff253fooEv,_ZTv0_n12_N4ff253fooEv)();
+extern void ABISELECT(_ZThn16_N4ff253fooEv,_ZThn12_N4ff253fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff25[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff25[0]),
+ (VTBL_ENTRY)&_ZN4ff253fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff253fooEv,_ZTv0_n12_N4ff253fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff25[];
+static VTT_ENTRY vtt_ff25[] = {
+ {&(_ZTV4ff25[3]), 3,8},
+ {&(_ZTV4ff25[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff25[];
+extern VTBL_ENTRY _ZTV4ff25[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff25[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff253fooEv,_ZTv0_n12_N4ff253fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff253fooEv,_ZThn12_N4ff253fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff25 = { "ff25", // class name
+ bases_ff25, 2,
+ &(vtc_ff25[0]), // expected_vtbl_contents
+ &(vtt_ff25[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff25),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff25),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff25),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names61,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg25 : virtual ee25 , ff25 {
+ int g;
+ gg25(const ABISELECT(__tsi64,int) *const *); // _ZN4gg25C2Ev
+ virtual void foo(); // _ZN4gg253fooEv
+ ~gg25(); // tgen
+ gg25(); // tgen
+};
+//SIG(1 gg25) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg25 ::gg25(const ABISELECT(__tsi64,int) *const *){}
+void gg25 ::foo(){vfunc_called(this, "_ZN4gg253fooEv");}
+gg25 ::~gg25(){ note_dtor("gg25", this);} // tgen
+gg25 ::gg25(){ note_ctor("gg25", this);} // tgen
+
+static void Test_gg25()
+{
+ extern Class_Descriptor cd_gg25;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg25, buf);
+ gg25 *dp, &lv = *(dp=new (buf) gg25());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg25)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg25)");
+ check_base_class_offset(lv, (aa25*)(ee25*), ABISELECT(40,28), "gg25");
+ check_base_class_offset(lv, (bb25*)(ee25*), ABISELECT(24,16), "gg25");
+ check_base_class_offset(lv, (ee25*), ABISELECT(24,16), "gg25");
+ check_base_class_offset(lv, (cc25*)(ff25*), 0, "gg25");
+ check_base_class_offset(lv, (dd25*)(ff25*), ABISELECT(56,36), "gg25");
+ check_base_class_offset(lv, (ff25*), 0, "gg25");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg25.g");
+ test_class_info(&lv, &cd_gg25);
+ dp->~gg25();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg25(Test_gg25, "gg25", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg25C1Ev();
+extern void _ZN4gg25D1Ev();
+Name_Map name_map_gg25[] = {
+ NSPAIR(_ZN4gg25C1Ev),
+ NSPAIR(_ZN4gg25D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa25;
+extern VTBL_ENTRY _ZTI4aa25[];
+extern VTBL_ENTRY _ZTV4aa25[];
+extern Class_Descriptor cd_bb25;
+extern VTBL_ENTRY _ZTI4bb25[];
+extern VTBL_ENTRY _ZTV4bb25[];
+extern Class_Descriptor cd_ee25;
+extern VTBL_ENTRY _ZTI4ee25[];
+extern VTBL_ENTRY _ZTV4ee25[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee25[];
+extern Class_Descriptor cd_cc25;
+extern VTBL_ENTRY _ZTI4cc25[];
+extern VTBL_ENTRY _ZTV4cc25[];
+extern Class_Descriptor cd_dd25;
+extern VTBL_ENTRY _ZTI4dd25[];
+extern VTBL_ENTRY _ZTV4dd25[];
+extern Class_Descriptor cd_ff25;
+extern VTBL_ENTRY _ZTI4ff25[];
+extern VTBL_ENTRY _ZTV4ff25[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff25[];
+static Base_Class bases_gg25[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa25, ABISELECT(40,28), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb25, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee25, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc25, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd25, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff25, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg25[];
+extern void _ZN4gg253fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg253fooEv,_ZTv0_n16_N4gg253fooEv)();
+extern void ABISELECT(_ZThn24_N4gg253fooEv,_ZThn16_N4gg253fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg253fooEv,_ZTv0_n12_N4gg253fooEv)();
+extern void ABISELECT(_ZThn40_N4gg253fooEv,_ZThn28_N4gg253fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg253fooEv,_ZTv0_n12_N4gg253fooEv)();
+extern void ABISELECT(_ZThn56_N4gg253fooEv,_ZThn36_N4gg253fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg25[] = {
+ ABISELECT(40,28),
+ ABISELECT(24,16),
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg25[0]),
+ (VTBL_ENTRY)&_ZN4gg253fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,12),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg253fooEv,_ZTv0_n16_N4gg253fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI4gg25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg253fooEv,_ZTv0_n12_N4gg253fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg253fooEv,_ZTv0_n12_N4gg253fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg25[];
+extern void _ZN4ff253fooEv();
+static VTBL_ENTRY _tg__ZTV4ff25__4gg25[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff25[0]),
+ (VTBL_ENTRY)&_ZN4ff253fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff253fooEv,_ZTv0_n12_N4ff253fooEv)();
+extern void ABISELECT(_ZThn56_N4ff253fooEv,_ZThn36_N4ff253fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd25__4ff25__4gg25[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4ff25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff253fooEv,_ZTv0_n12_N4ff253fooEv),
+};
+extern void _ZN4ee253fooEv();
+static VTBL_ENTRY _tg__ZTV4ee25__4gg25[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee25[0]),
+ (VTBL_ENTRY)&_ZN4ee253fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee253fooEv,_ZTv0_n12_N4ee253fooEv)();
+extern void ABISELECT(_ZThn16_N4ee253fooEv,_ZThn12_N4ee253fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa25__4ee25__4gg25[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee25[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee253fooEv,_ZTv0_n12_N4ee253fooEv),
+};
+static VTT_ENTRY vtt_gg25[] = {
+ {&(_ZTV4gg25[5]), 5,19},
+ {&(_tg__ZTV4ff25__4gg25[3]), 3,4},
+ {&(_tg__ZTV4dd25__4ff25__4gg25[3]), 3,4},
+ {&(_ZTV4gg25[10]), 10,19},
+ {&(_ZTV4gg25[14]), 14,19},
+ {&(_ZTV4gg25[18]), 18,19},
+ {&(_tg__ZTV4ee25__4gg25[3]), 3,4},
+ {&(_tg__ZTV4aa25__4ee25__4gg25[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg25[];
+extern VTBL_ENTRY _ZTV4gg25[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg25[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee253fooEv,_ZTv0_n12_N4ee253fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee253fooEv,_ZThn12_N4ee253fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff253fooEv,_ZTv0_n12_N4ff253fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff253fooEv,_ZThn36_N4ff253fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg253fooEv,_ZTv0_n12_N4gg253fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg253fooEv,_ZThn36_N4gg253fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg253fooEv,_ZThn28_N4gg253fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg253fooEv,_ZTv0_n16_N4gg253fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg253fooEv,_ZThn16_N4gg253fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg25 = { "gg25", // class name
+ bases_gg25, 6,
+ &(vtc_gg25[0]), // expected_vtbl_contents
+ &(vtt_gg25[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg25),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg25),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg25),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names62,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa26 {
+ int a;
+ aa26(); // _ZN4aa26C1Ev
+ virtual void foo(); // _ZN4aa263fooEv
+ ~aa26(); // tgen
+};
+//SIG(-1 aa26) C1{ v1 Fi}
+
+
+ aa26 ::aa26(){ note_ctor("aa26", this);}
+void aa26 ::foo(){vfunc_called(this, "_ZN4aa263fooEv");}
+aa26 ::~aa26(){ note_dtor("aa26", this);} // tgen
+
+static void Test_aa26()
+{
+ extern Class_Descriptor cd_aa26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa26, buf);
+ aa26 *dp, &lv = *(dp=new (buf) aa26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa26)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa26.a");
+ test_class_info(&lv, &cd_aa26);
+ dp->~aa26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa26(Test_aa26, "aa26", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa26C1Ev();
+extern void _ZN4aa26D1Ev();
+Name_Map name_map_aa26[] = {
+ NSPAIR(_ZN4aa26C1Ev),
+ NSPAIR(_ZN4aa26D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa26[];
+extern void _ZN4aa263fooEv();
+static VTBL_ENTRY vtc_aa26[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa26[0]),
+ (VTBL_ENTRY)&_ZN4aa263fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa26[];
+extern VTBL_ENTRY _ZTV4aa26[];
+Class_Descriptor cd_aa26 = { "aa26", // class name
+ 0,0,//no base classes
+ &(vtc_aa26[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa26),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa26),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb26 {
+ int b;
+ bb26(); // _ZN4bb26C1Ev
+ virtual void foo(); // _ZN4bb263fooEv
+ ~bb26(); // tgen
+};
+//SIG(-1 bb26) C1{ v1 Fi}
+
+
+ bb26 ::bb26(){ note_ctor("bb26", this);}
+void bb26 ::foo(){vfunc_called(this, "_ZN4bb263fooEv");}
+bb26 ::~bb26(){ note_dtor("bb26", this);} // tgen
+
+static void Test_bb26()
+{
+ extern Class_Descriptor cd_bb26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb26, buf);
+ bb26 *dp, &lv = *(dp=new (buf) bb26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb26)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb26.b");
+ test_class_info(&lv, &cd_bb26);
+ dp->~bb26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb26(Test_bb26, "bb26", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb26C1Ev();
+extern void _ZN4bb26D1Ev();
+Name_Map name_map_bb26[] = {
+ NSPAIR(_ZN4bb26C1Ev),
+ NSPAIR(_ZN4bb26D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb26[];
+extern void _ZN4bb263fooEv();
+static VTBL_ENTRY vtc_bb26[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb26[0]),
+ (VTBL_ENTRY)&_ZN4bb263fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb26[];
+extern VTBL_ENTRY _ZTV4bb26[];
+Class_Descriptor cd_bb26 = { "bb26", // class name
+ 0,0,//no base classes
+ &(vtc_bb26[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb26),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb26),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc26 {
+ int c;
+ cc26(); // _ZN4cc26C1Ev
+ virtual void foo(); // _ZN4cc263fooEv
+ ~cc26(); // tgen
+};
+//SIG(-1 cc26) C1{ v1 Fi}
+
+
+ cc26 ::cc26(){ note_ctor("cc26", this);}
+void cc26 ::foo(){vfunc_called(this, "_ZN4cc263fooEv");}
+cc26 ::~cc26(){ note_dtor("cc26", this);} // tgen
+
+static void Test_cc26()
+{
+ extern Class_Descriptor cd_cc26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc26, buf);
+ cc26 *dp, &lv = *(dp=new (buf) cc26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc26)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc26.c");
+ test_class_info(&lv, &cd_cc26);
+ dp->~cc26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc26(Test_cc26, "cc26", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc26C1Ev();
+extern void _ZN4cc26D1Ev();
+Name_Map name_map_cc26[] = {
+ NSPAIR(_ZN4cc26C1Ev),
+ NSPAIR(_ZN4cc26D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc26[];
+extern void _ZN4cc263fooEv();
+static VTBL_ENTRY vtc_cc26[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc26[0]),
+ (VTBL_ENTRY)&_ZN4cc263fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc26[];
+extern VTBL_ENTRY _ZTV4cc26[];
+Class_Descriptor cd_cc26 = { "cc26", // class name
+ 0,0,//no base classes
+ &(vtc_cc26[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc26),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc26),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd26 {
+ int d;
+ dd26(); // _ZN4dd26C1Ev
+ virtual void foo(); // _ZN4dd263fooEv
+ ~dd26(); // tgen
+};
+//SIG(-1 dd26) C1{ v1 Fi}
+
+
+ dd26 ::dd26(){ note_ctor("dd26", this);}
+void dd26 ::foo(){vfunc_called(this, "_ZN4dd263fooEv");}
+dd26 ::~dd26(){ note_dtor("dd26", this);} // tgen
+
+static void Test_dd26()
+{
+ extern Class_Descriptor cd_dd26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd26, buf);
+ dd26 *dp, &lv = *(dp=new (buf) dd26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd26)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd26.d");
+ test_class_info(&lv, &cd_dd26);
+ dp->~dd26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd26(Test_dd26, "dd26", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd26C1Ev();
+extern void _ZN4dd26D1Ev();
+Name_Map name_map_dd26[] = {
+ NSPAIR(_ZN4dd26C1Ev),
+ NSPAIR(_ZN4dd26D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd26[];
+extern void _ZN4dd263fooEv();
+static VTBL_ENTRY vtc_dd26[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd26[0]),
+ (VTBL_ENTRY)&_ZN4dd263fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd26[];
+extern VTBL_ENTRY _ZTV4dd26[];
+Class_Descriptor cd_dd26 = { "dd26", // class name
+ 0,0,//no base classes
+ &(vtc_dd26[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd26),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd26),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26 : aa26 , virtual bb26 {
+ int e;
+ ee26(const ABISELECT(__tsi64,int) *const *); // _ZN4ee26C2Ev
+ virtual void foo(); // _ZN4ee263fooEv
+ ~ee26(); // tgen
+ ee26(); // tgen
+};
+//SIG(-1 ee26) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee26 ::ee26(const ABISELECT(__tsi64,int) *const *){}
+void ee26 ::foo(){vfunc_called(this, "_ZN4ee263fooEv");}
+ee26 ::~ee26(){ note_dtor("ee26", this);} // tgen
+ee26 ::ee26(){ note_ctor("ee26", this);} // tgen
+
+static void Test_ee26()
+{
+ extern Class_Descriptor cd_ee26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee26, buf);
+ ee26 *dp, &lv = *(dp=new (buf) ee26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26)");
+ check_base_class_offset(lv, (aa26*), 0, "ee26");
+ check_base_class_offset(lv, (bb26*), ABISELECT(16,12), "ee26");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee26.e");
+ test_class_info(&lv, &cd_ee26);
+ dp->~ee26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26(Test_ee26, "ee26", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee26C1Ev();
+extern void _ZN4ee26D1Ev();
+Name_Map name_map_ee26[] = {
+ NSPAIR(_ZN4ee26C1Ev),
+ NSPAIR(_ZN4ee26D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa26;
+extern VTBL_ENTRY _ZTI4aa26[];
+extern VTBL_ENTRY _ZTV4aa26[];
+extern Class_Descriptor cd_bb26;
+extern VTBL_ENTRY _ZTI4bb26[];
+extern VTBL_ENTRY _ZTV4bb26[];
+static Base_Class bases_ee26[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa26, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb26, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee26[];
+extern void _ZN4ee263fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee263fooEv,_ZTv0_n12_N4ee263fooEv)();
+extern void ABISELECT(_ZThn16_N4ee263fooEv,_ZThn12_N4ee263fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee26[0]),
+ (VTBL_ENTRY)&_ZN4ee263fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee263fooEv,_ZTv0_n12_N4ee263fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee26[];
+static VTT_ENTRY vtt_ee26[] = {
+ {&(_ZTV4ee26[3]), 3,8},
+ {&(_ZTV4ee26[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee26[];
+extern VTBL_ENTRY _ZTV4ee26[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee26[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee263fooEv,_ZTv0_n12_N4ee263fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee263fooEv,_ZThn12_N4ee263fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26 = { "ee26", // class name
+ bases_ee26, 2,
+ &(vtc_ee26[0]), // expected_vtbl_contents
+ &(vtt_ee26[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee26),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee26),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee26),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names63,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff26 : cc26 , virtual dd26 {
+ int f;
+ ff26(const ABISELECT(__tsi64,int) *const *); // _ZN4ff26C2Ev
+ virtual void foo(); // _ZN4ff263fooEv
+ ~ff26(); // tgen
+ ff26(); // tgen
+};
+//SIG(-1 ff26) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff26 ::ff26(const ABISELECT(__tsi64,int) *const *){}
+void ff26 ::foo(){vfunc_called(this, "_ZN4ff263fooEv");}
+ff26 ::~ff26(){ note_dtor("ff26", this);} // tgen
+ff26 ::ff26(){ note_ctor("ff26", this);} // tgen
+
+static void Test_ff26()
+{
+ extern Class_Descriptor cd_ff26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff26, buf);
+ ff26 *dp, &lv = *(dp=new (buf) ff26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff26)");
+ check_base_class_offset(lv, (cc26*), 0, "ff26");
+ check_base_class_offset(lv, (dd26*), ABISELECT(16,12), "ff26");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff26.f");
+ test_class_info(&lv, &cd_ff26);
+ dp->~ff26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff26(Test_ff26, "ff26", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff26C1Ev();
+extern void _ZN4ff26D1Ev();
+Name_Map name_map_ff26[] = {
+ NSPAIR(_ZN4ff26C1Ev),
+ NSPAIR(_ZN4ff26D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc26;
+extern VTBL_ENTRY _ZTI4cc26[];
+extern VTBL_ENTRY _ZTV4cc26[];
+extern Class_Descriptor cd_dd26;
+extern VTBL_ENTRY _ZTI4dd26[];
+extern VTBL_ENTRY _ZTV4dd26[];
+static Base_Class bases_ff26[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc26, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd26, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff26[];
+extern void _ZN4ff263fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff263fooEv,_ZTv0_n12_N4ff263fooEv)();
+extern void ABISELECT(_ZThn16_N4ff263fooEv,_ZThn12_N4ff263fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff26[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff26[0]),
+ (VTBL_ENTRY)&_ZN4ff263fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff263fooEv,_ZTv0_n12_N4ff263fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff26[];
+static VTT_ENTRY vtt_ff26[] = {
+ {&(_ZTV4ff26[3]), 3,8},
+ {&(_ZTV4ff26[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff26[];
+extern VTBL_ENTRY _ZTV4ff26[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff26[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff263fooEv,_ZTv0_n12_N4ff263fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff263fooEv,_ZThn12_N4ff263fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff26 = { "ff26", // class name
+ bases_ff26, 2,
+ &(vtc_ff26[0]), // expected_vtbl_contents
+ &(vtt_ff26[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff26),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff26),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff26),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg26 : virtual ee26 , ff26 {
+ int g;
+ gg26(const ABISELECT(__tsi64,int) *const *); // _ZN4gg26C2Ev
+ virtual void foo(); // _ZN4gg263fooEv
+ ~gg26(); // tgen
+ gg26(); // tgen
+};
+//SIG(1 gg26) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg26 ::gg26(const ABISELECT(__tsi64,int) *const *){}
+void gg26 ::foo(){vfunc_called(this, "_ZN4gg263fooEv");}
+gg26 ::~gg26(){ note_dtor("gg26", this);} // tgen
+gg26 ::gg26(){ note_ctor("gg26", this);} // tgen
+
+static void Test_gg26()
+{
+ extern Class_Descriptor cd_gg26;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg26, buf);
+ gg26 *dp, &lv = *(dp=new (buf) gg26());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg26)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg26)");
+ check_base_class_offset(lv, (aa26*)(ee26*), ABISELECT(24,16), "gg26");
+ check_base_class_offset(lv, (bb26*)(ee26*), ABISELECT(40,28), "gg26");
+ check_base_class_offset(lv, (ee26*), ABISELECT(24,16), "gg26");
+ check_base_class_offset(lv, (cc26*)(ff26*), 0, "gg26");
+ check_base_class_offset(lv, (dd26*)(ff26*), ABISELECT(56,36), "gg26");
+ check_base_class_offset(lv, (ff26*), 0, "gg26");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg26.g");
+ test_class_info(&lv, &cd_gg26);
+ dp->~gg26();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg26(Test_gg26, "gg26", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg26C1Ev();
+extern void _ZN4gg26D1Ev();
+Name_Map name_map_gg26[] = {
+ NSPAIR(_ZN4gg26C1Ev),
+ NSPAIR(_ZN4gg26D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa26;
+extern VTBL_ENTRY _ZTI4aa26[];
+extern VTBL_ENTRY _ZTV4aa26[];
+extern Class_Descriptor cd_bb26;
+extern VTBL_ENTRY _ZTI4bb26[];
+extern VTBL_ENTRY _ZTV4bb26[];
+extern Class_Descriptor cd_ee26;
+extern VTBL_ENTRY _ZTI4ee26[];
+extern VTBL_ENTRY _ZTV4ee26[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee26[];
+extern Class_Descriptor cd_cc26;
+extern VTBL_ENTRY _ZTI4cc26[];
+extern VTBL_ENTRY _ZTV4cc26[];
+extern Class_Descriptor cd_dd26;
+extern VTBL_ENTRY _ZTI4dd26[];
+extern VTBL_ENTRY _ZTV4dd26[];
+extern Class_Descriptor cd_ff26;
+extern VTBL_ENTRY _ZTI4ff26[];
+extern VTBL_ENTRY _ZTV4ff26[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff26[];
+static Base_Class bases_gg26[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa26, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb26, ABISELECT(40,28), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee26, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc26, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd26, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff26, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg26[];
+extern void _ZN4gg263fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg263fooEv,_ZTv0_n16_N4gg263fooEv)();
+extern void ABISELECT(_ZThn24_N4gg263fooEv,_ZThn16_N4gg263fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg263fooEv,_ZTv0_n12_N4gg263fooEv)();
+extern void ABISELECT(_ZThn40_N4gg263fooEv,_ZThn28_N4gg263fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg263fooEv,_ZTv0_n12_N4gg263fooEv)();
+extern void ABISELECT(_ZThn56_N4gg263fooEv,_ZThn36_N4gg263fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg26[] = {
+ ABISELECT(40,28),
+ ABISELECT(24,16),
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg26[0]),
+ (VTBL_ENTRY)&_ZN4gg263fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,12),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg263fooEv,_ZTv0_n16_N4gg263fooEv),
+ ABISELECT(-40,-28),
+ ABISELECT(-40,-28),
+ (VTBL_ENTRY)&(_ZTI4gg26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg263fooEv,_ZTv0_n12_N4gg263fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg263fooEv,_ZTv0_n12_N4gg263fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg26[];
+extern void _ZN4ff263fooEv();
+static VTBL_ENTRY _tg__ZTV4ff26__4gg26[] = {
+ ABISELECT(56,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff26[0]),
+ (VTBL_ENTRY)&_ZN4ff263fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff263fooEv,_ZTv0_n12_N4ff263fooEv)();
+extern void ABISELECT(_ZThn56_N4ff263fooEv,_ZThn36_N4ff263fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd26__4ff26__4gg26[] = {
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4ff26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff263fooEv,_ZTv0_n12_N4ff263fooEv),
+};
+extern void _ZN4ee263fooEv();
+static VTBL_ENTRY _tg__ZTV4ee26__4gg26[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee26[0]),
+ (VTBL_ENTRY)&_ZN4ee263fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee263fooEv,_ZTv0_n12_N4ee263fooEv)();
+extern void ABISELECT(_ZThn16_N4ee263fooEv,_ZThn12_N4ee263fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb26__4ee26__4gg26[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee26[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee263fooEv,_ZTv0_n12_N4ee263fooEv),
+};
+static VTT_ENTRY vtt_gg26[] = {
+ {&(_ZTV4gg26[5]), 5,19},
+ {&(_tg__ZTV4ff26__4gg26[3]), 3,4},
+ {&(_tg__ZTV4dd26__4ff26__4gg26[3]), 3,4},
+ {&(_ZTV4gg26[10]), 10,19},
+ {&(_ZTV4gg26[14]), 14,19},
+ {&(_ZTV4gg26[18]), 18,19},
+ {&(_tg__ZTV4ee26__4gg26[3]), 3,4},
+ {&(_tg__ZTV4bb26__4ee26__4gg26[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg26[];
+extern VTBL_ENTRY _ZTV4gg26[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg26[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee263fooEv,_ZTv0_n12_N4ee263fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee263fooEv,_ZThn12_N4ee263fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff263fooEv,_ZTv0_n12_N4ff263fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4ff263fooEv,_ZThn36_N4ff263fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg263fooEv,_ZTv0_n12_N4gg263fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg263fooEv,_ZThn36_N4gg263fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg263fooEv,_ZThn28_N4gg263fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg263fooEv,_ZTv0_n16_N4gg263fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg263fooEv,_ZThn16_N4gg263fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg26 = { "gg26", // class name
+ bases_gg26, 6,
+ &(vtc_gg26[0]), // expected_vtbl_contents
+ &(vtt_gg26[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg26),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg26),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg26),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names65,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa27 {
+ int a;
+ aa27(); // _ZN4aa27C1Ev
+ virtual void foo(); // _ZN4aa273fooEv
+ ~aa27(); // tgen
+};
+//SIG(-1 aa27) C1{ v1 Fi}
+
+
+ aa27 ::aa27(){ note_ctor("aa27", this);}
+void aa27 ::foo(){vfunc_called(this, "_ZN4aa273fooEv");}
+aa27 ::~aa27(){ note_dtor("aa27", this);} // tgen
+
+static void Test_aa27()
+{
+ extern Class_Descriptor cd_aa27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa27, buf);
+ aa27 *dp, &lv = *(dp=new (buf) aa27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa27)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa27.a");
+ test_class_info(&lv, &cd_aa27);
+ dp->~aa27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa27(Test_aa27, "aa27", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa27C1Ev();
+extern void _ZN4aa27D1Ev();
+Name_Map name_map_aa27[] = {
+ NSPAIR(_ZN4aa27C1Ev),
+ NSPAIR(_ZN4aa27D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa27[];
+extern void _ZN4aa273fooEv();
+static VTBL_ENTRY vtc_aa27[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa27[0]),
+ (VTBL_ENTRY)&_ZN4aa273fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa27[];
+extern VTBL_ENTRY _ZTV4aa27[];
+Class_Descriptor cd_aa27 = { "aa27", // class name
+ 0,0,//no base classes
+ &(vtc_aa27[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa27),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa27),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb27 {
+ int b;
+ bb27(); // _ZN4bb27C1Ev
+ virtual void foo(); // _ZN4bb273fooEv
+ ~bb27(); // tgen
+};
+//SIG(-1 bb27) C1{ v1 Fi}
+
+
+ bb27 ::bb27(){ note_ctor("bb27", this);}
+void bb27 ::foo(){vfunc_called(this, "_ZN4bb273fooEv");}
+bb27 ::~bb27(){ note_dtor("bb27", this);} // tgen
+
+static void Test_bb27()
+{
+ extern Class_Descriptor cd_bb27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb27, buf);
+ bb27 *dp, &lv = *(dp=new (buf) bb27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb27)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb27.b");
+ test_class_info(&lv, &cd_bb27);
+ dp->~bb27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb27(Test_bb27, "bb27", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb27C1Ev();
+extern void _ZN4bb27D1Ev();
+Name_Map name_map_bb27[] = {
+ NSPAIR(_ZN4bb27C1Ev),
+ NSPAIR(_ZN4bb27D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb27[];
+extern void _ZN4bb273fooEv();
+static VTBL_ENTRY vtc_bb27[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb27[0]),
+ (VTBL_ENTRY)&_ZN4bb273fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb27[];
+extern VTBL_ENTRY _ZTV4bb27[];
+Class_Descriptor cd_bb27 = { "bb27", // class name
+ 0,0,//no base classes
+ &(vtc_bb27[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb27),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb27),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc27 {
+ int c;
+ cc27(); // _ZN4cc27C1Ev
+ virtual void foo(); // _ZN4cc273fooEv
+ ~cc27(); // tgen
+};
+//SIG(-1 cc27) C1{ v1 Fi}
+
+
+ cc27 ::cc27(){ note_ctor("cc27", this);}
+void cc27 ::foo(){vfunc_called(this, "_ZN4cc273fooEv");}
+cc27 ::~cc27(){ note_dtor("cc27", this);} // tgen
+
+static void Test_cc27()
+{
+ extern Class_Descriptor cd_cc27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc27, buf);
+ cc27 *dp, &lv = *(dp=new (buf) cc27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc27)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc27.c");
+ test_class_info(&lv, &cd_cc27);
+ dp->~cc27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc27(Test_cc27, "cc27", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc27C1Ev();
+extern void _ZN4cc27D1Ev();
+Name_Map name_map_cc27[] = {
+ NSPAIR(_ZN4cc27C1Ev),
+ NSPAIR(_ZN4cc27D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc27[];
+extern void _ZN4cc273fooEv();
+static VTBL_ENTRY vtc_cc27[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc27[0]),
+ (VTBL_ENTRY)&_ZN4cc273fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc27[];
+extern VTBL_ENTRY _ZTV4cc27[];
+Class_Descriptor cd_cc27 = { "cc27", // class name
+ 0,0,//no base classes
+ &(vtc_cc27[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc27),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc27),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd27 {
+ int d;
+ dd27(); // _ZN4dd27C1Ev
+ virtual void foo(); // _ZN4dd273fooEv
+ ~dd27(); // tgen
+};
+//SIG(-1 dd27) C1{ v1 Fi}
+
+
+ dd27 ::dd27(){ note_ctor("dd27", this);}
+void dd27 ::foo(){vfunc_called(this, "_ZN4dd273fooEv");}
+dd27 ::~dd27(){ note_dtor("dd27", this);} // tgen
+
+static void Test_dd27()
+{
+ extern Class_Descriptor cd_dd27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd27, buf);
+ dd27 *dp, &lv = *(dp=new (buf) dd27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd27)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd27.d");
+ test_class_info(&lv, &cd_dd27);
+ dp->~dd27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd27(Test_dd27, "dd27", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd27C1Ev();
+extern void _ZN4dd27D1Ev();
+Name_Map name_map_dd27[] = {
+ NSPAIR(_ZN4dd27C1Ev),
+ NSPAIR(_ZN4dd27D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd27[];
+extern void _ZN4dd273fooEv();
+static VTBL_ENTRY vtc_dd27[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd27[0]),
+ (VTBL_ENTRY)&_ZN4dd273fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd27[];
+extern VTBL_ENTRY _ZTV4dd27[];
+Class_Descriptor cd_dd27 = { "dd27", // class name
+ 0,0,//no base classes
+ &(vtc_dd27[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd27),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd27),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27 : virtual aa27 , virtual bb27 {
+ int e;
+ ee27(const ABISELECT(__tsi64,int) *const *); // _ZN4ee27C2Ev
+ virtual void foo(); // _ZN4ee273fooEv
+ ~ee27(); // tgen
+ ee27(); // tgen
+};
+//SIG(-1 ee27) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee27 ::ee27(const ABISELECT(__tsi64,int) *const *){}
+void ee27 ::foo(){vfunc_called(this, "_ZN4ee273fooEv");}
+ee27 ::~ee27(){ note_dtor("ee27", this);} // tgen
+ee27 ::ee27(){ note_ctor("ee27", this);} // tgen
+
+static void Test_ee27()
+{
+ extern Class_Descriptor cd_ee27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee27, buf);
+ ee27 *dp, &lv = *(dp=new (buf) ee27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27)");
+ check_base_class_offset(lv, (aa27*), ABISELECT(16,8), "ee27");
+ check_base_class_offset(lv, (bb27*), ABISELECT(32,16), "ee27");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee27.e");
+ test_class_info(&lv, &cd_ee27);
+ dp->~ee27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27(Test_ee27, "ee27", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee27C1Ev();
+extern void _ZN4ee27D1Ev();
+Name_Map name_map_ee27[] = {
+ NSPAIR(_ZN4ee27C1Ev),
+ NSPAIR(_ZN4ee27D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa27;
+extern VTBL_ENTRY _ZTI4aa27[];
+extern VTBL_ENTRY _ZTV4aa27[];
+extern Class_Descriptor cd_bb27;
+extern VTBL_ENTRY _ZTI4bb27[];
+extern VTBL_ENTRY _ZTV4bb27[];
+static Base_Class bases_ee27[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa27, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb27, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee27[];
+extern void _ZN4ee273fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv)();
+extern void ABISELECT(_ZThn16_N4ee273fooEv,_ZThn8_N4ee273fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv)();
+extern void ABISELECT(_ZThn32_N4ee273fooEv,_ZThn16_N4ee273fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee27[0]),
+ (VTBL_ENTRY)&_ZN4ee273fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee27[];
+static VTT_ENTRY vtt_ee27[] = {
+ {&(_ZTV4ee27[4]), 4,13},
+ {&(_ZTV4ee27[8]), 8,13},
+ {&(_ZTV4ee27[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee27[];
+extern VTBL_ENTRY _ZTV4ee27[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee27[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee273fooEv,_ZThn16_N4ee273fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee273fooEv,_ZThn8_N4ee273fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27 = { "ee27", // class name
+ bases_ee27, 2,
+ &(vtc_ee27[0]), // expected_vtbl_contents
+ &(vtt_ee27[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee27),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee27),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee27),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names66,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff27 : cc27 , virtual dd27 {
+ int f;
+ ff27(const ABISELECT(__tsi64,int) *const *); // _ZN4ff27C2Ev
+ virtual void foo(); // _ZN4ff273fooEv
+ ~ff27(); // tgen
+ ff27(); // tgen
+};
+//SIG(-1 ff27) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff27 ::ff27(const ABISELECT(__tsi64,int) *const *){}
+void ff27 ::foo(){vfunc_called(this, "_ZN4ff273fooEv");}
+ff27 ::~ff27(){ note_dtor("ff27", this);} // tgen
+ff27 ::ff27(){ note_ctor("ff27", this);} // tgen
+
+static void Test_ff27()
+{
+ extern Class_Descriptor cd_ff27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff27, buf);
+ ff27 *dp, &lv = *(dp=new (buf) ff27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff27)");
+ check_base_class_offset(lv, (cc27*), 0, "ff27");
+ check_base_class_offset(lv, (dd27*), ABISELECT(16,12), "ff27");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff27.f");
+ test_class_info(&lv, &cd_ff27);
+ dp->~ff27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff27(Test_ff27, "ff27", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff27C1Ev();
+extern void _ZN4ff27D1Ev();
+Name_Map name_map_ff27[] = {
+ NSPAIR(_ZN4ff27C1Ev),
+ NSPAIR(_ZN4ff27D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc27;
+extern VTBL_ENTRY _ZTI4cc27[];
+extern VTBL_ENTRY _ZTV4cc27[];
+extern Class_Descriptor cd_dd27;
+extern VTBL_ENTRY _ZTI4dd27[];
+extern VTBL_ENTRY _ZTV4dd27[];
+static Base_Class bases_ff27[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc27, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd27, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff27[];
+extern void _ZN4ff273fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff273fooEv,_ZTv0_n12_N4ff273fooEv)();
+extern void ABISELECT(_ZThn16_N4ff273fooEv,_ZThn12_N4ff273fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff27[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff27[0]),
+ (VTBL_ENTRY)&_ZN4ff273fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff273fooEv,_ZTv0_n12_N4ff273fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff27[];
+static VTT_ENTRY vtt_ff27[] = {
+ {&(_ZTV4ff27[3]), 3,8},
+ {&(_ZTV4ff27[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff27[];
+extern VTBL_ENTRY _ZTV4ff27[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff27[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff273fooEv,_ZTv0_n12_N4ff273fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff273fooEv,_ZThn12_N4ff273fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff27 = { "ff27", // class name
+ bases_ff27, 2,
+ &(vtc_ff27[0]), // expected_vtbl_contents
+ &(vtt_ff27[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff27),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff27),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff27),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg27 : virtual ee27 , ff27 {
+ int g;
+ gg27(const ABISELECT(__tsi64,int) *const *); // _ZN4gg27C2Ev
+ virtual void foo(); // _ZN4gg273fooEv
+ ~gg27(); // tgen
+ gg27(); // tgen
+};
+//SIG(1 gg27) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg27 ::gg27(const ABISELECT(__tsi64,int) *const *){}
+void gg27 ::foo(){vfunc_called(this, "_ZN4gg273fooEv");}
+gg27 ::~gg27(){ note_dtor("gg27", this);} // tgen
+gg27 ::gg27(){ note_ctor("gg27", this);} // tgen
+
+static void Test_gg27()
+{
+ extern Class_Descriptor cd_gg27;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg27, buf);
+ gg27 *dp, &lv = *(dp=new (buf) gg27());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg27)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg27)");
+ check_base_class_offset(lv, (aa27*)(ee27*), ABISELECT(40,24), "gg27");
+ check_base_class_offset(lv, (bb27*)(ee27*), ABISELECT(56,32), "gg27");
+ check_base_class_offset(lv, (ee27*), ABISELECT(24,16), "gg27");
+ check_base_class_offset(lv, (cc27*)(ff27*), 0, "gg27");
+ check_base_class_offset(lv, (dd27*)(ff27*), ABISELECT(72,40), "gg27");
+ check_base_class_offset(lv, (ff27*), 0, "gg27");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg27.g");
+ test_class_info(&lv, &cd_gg27);
+ dp->~gg27();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg27(Test_gg27, "gg27", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg27C1Ev();
+extern void _ZN4gg27D1Ev();
+Name_Map name_map_gg27[] = {
+ NSPAIR(_ZN4gg27C1Ev),
+ NSPAIR(_ZN4gg27D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa27;
+extern VTBL_ENTRY _ZTI4aa27[];
+extern VTBL_ENTRY _ZTV4aa27[];
+extern Class_Descriptor cd_bb27;
+extern VTBL_ENTRY _ZTI4bb27[];
+extern VTBL_ENTRY _ZTV4bb27[];
+extern Class_Descriptor cd_ee27;
+extern VTBL_ENTRY _ZTI4ee27[];
+extern VTBL_ENTRY _ZTV4ee27[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee27[];
+extern Class_Descriptor cd_cc27;
+extern VTBL_ENTRY _ZTI4cc27[];
+extern VTBL_ENTRY _ZTV4cc27[];
+extern Class_Descriptor cd_dd27;
+extern VTBL_ENTRY _ZTI4dd27[];
+extern VTBL_ENTRY _ZTV4dd27[];
+extern Class_Descriptor cd_ff27;
+extern VTBL_ENTRY _ZTI4ff27[];
+extern VTBL_ENTRY _ZTV4ff27[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff27[];
+static Base_Class bases_gg27[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa27, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb27, ABISELECT(56,32), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee27, ABISELECT(24,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc27, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd27, ABISELECT(72,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff27, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg27[];
+extern void _ZN4gg273fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg273fooEv,_ZTv0_n20_N4gg273fooEv)();
+extern void ABISELECT(_ZThn24_N4gg273fooEv,_ZThn16_N4gg273fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv)();
+extern void ABISELECT(_ZThn40_N4gg273fooEv,_ZThn24_N4gg273fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv)();
+extern void ABISELECT(_ZThn56_N4gg273fooEv,_ZThn32_N4gg273fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv)();
+extern void ABISELECT(_ZThn72_N4gg273fooEv,_ZThn40_N4gg273fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg27[] = {
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ ABISELECT(72,40),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg27[0]),
+ (VTBL_ENTRY)&_ZN4gg273fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg273fooEv,_ZTv0_n20_N4gg273fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg27[];
+extern void _ZN4ff273fooEv();
+static VTBL_ENTRY _tg__ZTV4ff27__4gg27[] = {
+ ABISELECT(72,40),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff27[0]),
+ (VTBL_ENTRY)&_ZN4ff273fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff273fooEv,_ZTv0_n12_N4ff273fooEv)();
+extern void ABISELECT(_ZThn72_N4ff273fooEv,_ZThn40_N4ff273fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd27__4ff27__4gg27[] = {
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4ff27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff273fooEv,_ZTv0_n12_N4ff273fooEv),
+};
+extern void _ZN4ee273fooEv();
+static VTBL_ENTRY _tg__ZTV4ee27__4gg27[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee27[0]),
+ (VTBL_ENTRY)&_ZN4ee273fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv)();
+extern void ABISELECT(_ZThn16_N4ee273fooEv,_ZThn8_N4ee273fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa27__4ee27__4gg27[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv)();
+extern void ABISELECT(_ZThn32_N4ee273fooEv,_ZThn16_N4ee273fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb27__4ee27__4gg27[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee27[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv),
+};
+static VTT_ENTRY vtt_gg27[] = {
+ {&(_ZTV4gg27[6]), 6,25},
+ {&(_tg__ZTV4ff27__4gg27[3]), 3,4},
+ {&(_tg__ZTV4dd27__4ff27__4gg27[3]), 3,4},
+ {&(_ZTV4gg27[12]), 12,25},
+ {&(_ZTV4gg27[16]), 16,25},
+ {&(_ZTV4gg27[20]), 20,25},
+ {&(_ZTV4gg27[24]), 24,25},
+ {&(_tg__ZTV4ee27__4gg27[4]), 4,5},
+ {&(_tg__ZTV4aa27__4ee27__4gg27[3]), 3,4},
+ {&(_tg__ZTV4bb27__4ee27__4gg27[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg27[];
+extern VTBL_ENTRY _ZTV4gg27[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg27[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee273fooEv,_ZTv0_n12_N4ee273fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee273fooEv,_ZThn16_N4ee273fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee273fooEv,_ZThn8_N4ee273fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff273fooEv,_ZTv0_n12_N4ff273fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4ff273fooEv,_ZThn40_N4ff273fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg273fooEv,_ZTv0_n12_N4gg273fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg273fooEv,_ZThn40_N4gg273fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg273fooEv,_ZThn32_N4gg273fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg273fooEv,_ZThn24_N4gg273fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg273fooEv,_ZTv0_n20_N4gg273fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg273fooEv,_ZThn16_N4gg273fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg27 = { "gg27", // class name
+ bases_gg27, 6,
+ &(vtc_gg27[0]), // expected_vtbl_contents
+ &(vtt_gg27[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg27),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg27),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg27),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names68,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa28 {
+ int a;
+ aa28(); // _ZN4aa28C1Ev
+ virtual void foo(); // _ZN4aa283fooEv
+ ~aa28(); // tgen
+};
+//SIG(-1 aa28) C1{ v1 Fi}
+
+
+ aa28 ::aa28(){ note_ctor("aa28", this);}
+void aa28 ::foo(){vfunc_called(this, "_ZN4aa283fooEv");}
+aa28 ::~aa28(){ note_dtor("aa28", this);} // tgen
+
+static void Test_aa28()
+{
+ extern Class_Descriptor cd_aa28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa28, buf);
+ aa28 *dp, &lv = *(dp=new (buf) aa28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa28)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa28.a");
+ test_class_info(&lv, &cd_aa28);
+ dp->~aa28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa28(Test_aa28, "aa28", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa28C1Ev();
+extern void _ZN4aa28D1Ev();
+Name_Map name_map_aa28[] = {
+ NSPAIR(_ZN4aa28C1Ev),
+ NSPAIR(_ZN4aa28D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa28[];
+extern void _ZN4aa283fooEv();
+static VTBL_ENTRY vtc_aa28[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa28[0]),
+ (VTBL_ENTRY)&_ZN4aa283fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa28[];
+extern VTBL_ENTRY _ZTV4aa28[];
+Class_Descriptor cd_aa28 = { "aa28", // class name
+ 0,0,//no base classes
+ &(vtc_aa28[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa28),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa28),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb28 {
+ int b;
+ bb28(); // _ZN4bb28C1Ev
+ virtual void foo(); // _ZN4bb283fooEv
+ ~bb28(); // tgen
+};
+//SIG(-1 bb28) C1{ v1 Fi}
+
+
+ bb28 ::bb28(){ note_ctor("bb28", this);}
+void bb28 ::foo(){vfunc_called(this, "_ZN4bb283fooEv");}
+bb28 ::~bb28(){ note_dtor("bb28", this);} // tgen
+
+static void Test_bb28()
+{
+ extern Class_Descriptor cd_bb28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb28, buf);
+ bb28 *dp, &lv = *(dp=new (buf) bb28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb28)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb28.b");
+ test_class_info(&lv, &cd_bb28);
+ dp->~bb28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb28(Test_bb28, "bb28", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb28C1Ev();
+extern void _ZN4bb28D1Ev();
+Name_Map name_map_bb28[] = {
+ NSPAIR(_ZN4bb28C1Ev),
+ NSPAIR(_ZN4bb28D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb28[];
+extern void _ZN4bb283fooEv();
+static VTBL_ENTRY vtc_bb28[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb28[0]),
+ (VTBL_ENTRY)&_ZN4bb283fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb28[];
+extern VTBL_ENTRY _ZTV4bb28[];
+Class_Descriptor cd_bb28 = { "bb28", // class name
+ 0,0,//no base classes
+ &(vtc_bb28[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb28),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb28),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc28 {
+ int c;
+ cc28(); // _ZN4cc28C1Ev
+ virtual void foo(); // _ZN4cc283fooEv
+ ~cc28(); // tgen
+};
+//SIG(-1 cc28) C1{ v1 Fi}
+
+
+ cc28 ::cc28(){ note_ctor("cc28", this);}
+void cc28 ::foo(){vfunc_called(this, "_ZN4cc283fooEv");}
+cc28 ::~cc28(){ note_dtor("cc28", this);} // tgen
+
+static void Test_cc28()
+{
+ extern Class_Descriptor cd_cc28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc28, buf);
+ cc28 *dp, &lv = *(dp=new (buf) cc28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc28)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc28.c");
+ test_class_info(&lv, &cd_cc28);
+ dp->~cc28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc28(Test_cc28, "cc28", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc28C1Ev();
+extern void _ZN4cc28D1Ev();
+Name_Map name_map_cc28[] = {
+ NSPAIR(_ZN4cc28C1Ev),
+ NSPAIR(_ZN4cc28D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc28[];
+extern void _ZN4cc283fooEv();
+static VTBL_ENTRY vtc_cc28[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc28[0]),
+ (VTBL_ENTRY)&_ZN4cc283fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc28[];
+extern VTBL_ENTRY _ZTV4cc28[];
+Class_Descriptor cd_cc28 = { "cc28", // class name
+ 0,0,//no base classes
+ &(vtc_cc28[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc28),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc28),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd28 {
+ int d;
+ dd28(); // _ZN4dd28C1Ev
+ virtual void foo(); // _ZN4dd283fooEv
+ ~dd28(); // tgen
+};
+//SIG(-1 dd28) C1{ v1 Fi}
+
+
+ dd28 ::dd28(){ note_ctor("dd28", this);}
+void dd28 ::foo(){vfunc_called(this, "_ZN4dd283fooEv");}
+dd28 ::~dd28(){ note_dtor("dd28", this);} // tgen
+
+static void Test_dd28()
+{
+ extern Class_Descriptor cd_dd28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd28, buf);
+ dd28 *dp, &lv = *(dp=new (buf) dd28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd28)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd28.d");
+ test_class_info(&lv, &cd_dd28);
+ dp->~dd28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd28(Test_dd28, "dd28", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd28C1Ev();
+extern void _ZN4dd28D1Ev();
+Name_Map name_map_dd28[] = {
+ NSPAIR(_ZN4dd28C1Ev),
+ NSPAIR(_ZN4dd28D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd28[];
+extern void _ZN4dd283fooEv();
+static VTBL_ENTRY vtc_dd28[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd28[0]),
+ (VTBL_ENTRY)&_ZN4dd283fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd28[];
+extern VTBL_ENTRY _ZTV4dd28[];
+Class_Descriptor cd_dd28 = { "dd28", // class name
+ 0,0,//no base classes
+ &(vtc_dd28[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd28),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd28),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee28 : aa28 , bb28 {
+ int e;
+ ee28(); // _ZN4ee28C1Ev
+ virtual void foo(); // _ZN4ee283fooEv
+ ~ee28(); // tgen
+};
+//SIG(-1 ee28) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee28 ::ee28(){ note_ctor("ee28", this);}
+void ee28 ::foo(){vfunc_called(this, "_ZN4ee283fooEv");}
+ee28 ::~ee28(){ note_dtor("ee28", this);} // tgen
+
+static void Test_ee28()
+{
+ extern Class_Descriptor cd_ee28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee28, buf);
+ ee28 *dp, &lv = *(dp=new (buf) ee28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee28)");
+ check_base_class_offset(lv, (aa28*), 0, "ee28");
+ check_base_class_offset(lv, (bb28*), ABISELECT(16,8), "ee28");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee28.e");
+ test_class_info(&lv, &cd_ee28);
+ dp->~ee28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee28(Test_ee28, "ee28", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee28C1Ev();
+extern void _ZN4ee28D1Ev();
+Name_Map name_map_ee28[] = {
+ NSPAIR(_ZN4ee28C1Ev),
+ NSPAIR(_ZN4ee28D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa28;
+extern VTBL_ENTRY _ZTI4aa28[];
+extern VTBL_ENTRY _ZTV4aa28[];
+extern Class_Descriptor cd_bb28;
+extern VTBL_ENTRY _ZTI4bb28[];
+extern VTBL_ENTRY _ZTV4bb28[];
+static Base_Class bases_ee28[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa28, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb28, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee28[];
+extern void _ZN4ee283fooEv();
+extern void ABISELECT(_ZThn16_N4ee283fooEv,_ZThn8_N4ee283fooEv)();
+static VTBL_ENTRY vtc_ee28[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee28[0]),
+ (VTBL_ENTRY)&_ZN4ee283fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee283fooEv,_ZThn8_N4ee283fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee28[];
+extern VTBL_ENTRY _ZTV4ee28[];
+Class_Descriptor cd_ee28 = { "ee28", // class name
+ bases_ee28, 2,
+ &(vtc_ee28[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee28),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee28),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff28 : virtual cc28 , virtual dd28 {
+ int f;
+ ff28(const ABISELECT(__tsi64,int) *const *); // _ZN4ff28C2Ev
+ virtual void foo(); // _ZN4ff283fooEv
+ ~ff28(); // tgen
+ ff28(); // tgen
+};
+//SIG(-1 ff28) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff28 ::ff28(const ABISELECT(__tsi64,int) *const *){}
+void ff28 ::foo(){vfunc_called(this, "_ZN4ff283fooEv");}
+ff28 ::~ff28(){ note_dtor("ff28", this);} // tgen
+ff28 ::ff28(){ note_ctor("ff28", this);} // tgen
+
+static void Test_ff28()
+{
+ extern Class_Descriptor cd_ff28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff28, buf);
+ ff28 *dp, &lv = *(dp=new (buf) ff28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff28)");
+ check_base_class_offset(lv, (cc28*), ABISELECT(16,8), "ff28");
+ check_base_class_offset(lv, (dd28*), ABISELECT(32,16), "ff28");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff28.f");
+ test_class_info(&lv, &cd_ff28);
+ dp->~ff28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff28(Test_ff28, "ff28", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff28C1Ev();
+extern void _ZN4ff28D1Ev();
+Name_Map name_map_ff28[] = {
+ NSPAIR(_ZN4ff28C1Ev),
+ NSPAIR(_ZN4ff28D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc28;
+extern VTBL_ENTRY _ZTI4cc28[];
+extern VTBL_ENTRY _ZTV4cc28[];
+extern Class_Descriptor cd_dd28;
+extern VTBL_ENTRY _ZTI4dd28[];
+extern VTBL_ENTRY _ZTV4dd28[];
+static Base_Class bases_ff28[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc28, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd28, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff28[];
+extern void _ZN4ff283fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv)();
+extern void ABISELECT(_ZThn16_N4ff283fooEv,_ZThn8_N4ff283fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv)();
+extern void ABISELECT(_ZThn32_N4ff283fooEv,_ZThn16_N4ff283fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff28[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff28[0]),
+ (VTBL_ENTRY)&_ZN4ff283fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff28[];
+static VTT_ENTRY vtt_ff28[] = {
+ {&(_ZTV4ff28[4]), 4,13},
+ {&(_ZTV4ff28[8]), 8,13},
+ {&(_ZTV4ff28[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff28[];
+extern VTBL_ENTRY _ZTV4ff28[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff28[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff283fooEv,_ZThn16_N4ff283fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff283fooEv,_ZThn8_N4ff283fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff28 = { "ff28", // class name
+ bases_ff28, 2,
+ &(vtc_ff28[0]), // expected_vtbl_contents
+ &(vtt_ff28[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff28),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff28),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff28),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg28 : virtual ee28 , ff28 {
+ int g;
+ gg28(const ABISELECT(__tsi64,int) *const *); // _ZN4gg28C2Ev
+ virtual void foo(); // _ZN4gg283fooEv
+ ~gg28(); // tgen
+ gg28(); // tgen
+};
+//SIG(1 gg28) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg28 ::gg28(const ABISELECT(__tsi64,int) *const *){}
+void gg28 ::foo(){vfunc_called(this, "_ZN4gg283fooEv");}
+gg28 ::~gg28(){ note_dtor("gg28", this);} // tgen
+gg28 ::gg28(){ note_ctor("gg28", this);} // tgen
+
+static void Test_gg28()
+{
+ extern Class_Descriptor cd_gg28;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg28, buf);
+ gg28 *dp, &lv = *(dp=new (buf) gg28());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg28)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg28)");
+ check_base_class_offset(lv, (aa28*)(ee28*), ABISELECT(16,12), "gg28");
+ check_base_class_offset(lv, (bb28*)(ee28*), ABISELECT(32,20), "gg28");
+ check_base_class_offset(lv, (ee28*), ABISELECT(16,12), "gg28");
+ check_base_class_offset(lv, (cc28*)(ff28*), ABISELECT(48,32), "gg28");
+ check_base_class_offset(lv, (dd28*)(ff28*), ABISELECT(64,40), "gg28");
+ check_base_class_offset(lv, (ff28*), 0, "gg28");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg28.g");
+ test_class_info(&lv, &cd_gg28);
+ dp->~gg28();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg28(Test_gg28, "gg28", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg28C1Ev();
+extern void _ZN4gg28D1Ev();
+Name_Map name_map_gg28[] = {
+ NSPAIR(_ZN4gg28C1Ev),
+ NSPAIR(_ZN4gg28D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa28;
+extern VTBL_ENTRY _ZTI4aa28[];
+extern VTBL_ENTRY _ZTV4aa28[];
+extern Class_Descriptor cd_bb28;
+extern VTBL_ENTRY _ZTI4bb28[];
+extern VTBL_ENTRY _ZTV4bb28[];
+extern Class_Descriptor cd_ee28;
+extern VTBL_ENTRY _ZTI4ee28[];
+extern VTBL_ENTRY _ZTV4ee28[];
+extern Class_Descriptor cd_cc28;
+extern VTBL_ENTRY _ZTI4cc28[];
+extern VTBL_ENTRY _ZTV4cc28[];
+extern Class_Descriptor cd_dd28;
+extern VTBL_ENTRY _ZTI4dd28[];
+extern VTBL_ENTRY _ZTV4dd28[];
+extern Class_Descriptor cd_ff28;
+extern VTBL_ENTRY _ZTI4ff28[];
+extern VTBL_ENTRY _ZTV4ff28[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff28[];
+static Base_Class bases_gg28[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa28, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb28, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee28, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc28, ABISELECT(48,32), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd28, ABISELECT(64,40), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff28, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg28[];
+extern void _ZN4gg283fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv)();
+extern void ABISELECT(_ZThn16_N4gg283fooEv,_ZThn12_N4gg283fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg283fooEv,_ZTvn8_n12_N4gg283fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv)();
+extern void ABISELECT(_ZThn48_N4gg283fooEv,_ZThn32_N4gg283fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv)();
+extern void ABISELECT(_ZThn64_N4gg283fooEv,_ZThn40_N4gg283fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg28[] = {
+ ABISELECT(16,12),
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg28[0]),
+ (VTBL_ENTRY)&_ZN4gg283fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg283fooEv,_ZTvn8_n12_N4gg283fooEv),
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4gg28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg28[];
+extern void _ZN4ff283fooEv();
+static VTBL_ENTRY _tg__ZTV4ff28__4gg28[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff28[0]),
+ (VTBL_ENTRY)&_ZN4ff283fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv)();
+extern void ABISELECT(_ZThn48_N4ff283fooEv,_ZThn32_N4ff283fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc28__4ff28__4gg28[] = {
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4ff28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv)();
+extern void ABISELECT(_ZThn64_N4ff283fooEv,_ZThn40_N4ff283fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd28__4ff28__4gg28[] = {
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4ff28[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv),
+};
+static VTT_ENTRY vtt_gg28[] = {
+ {&(_ZTV4gg28[5]), 5,21},
+ {&(_tg__ZTV4ff28__4gg28[4]), 4,5},
+ {&(_tg__ZTV4cc28__4ff28__4gg28[3]), 3,4},
+ {&(_tg__ZTV4dd28__4ff28__4gg28[3]), 3,4},
+ {&(_ZTV4gg28[9]), 9,21},
+ {&(_ZTV4gg28[12]), 12,21},
+ {&(_ZTV4gg28[16]), 16,21},
+ {&(_ZTV4gg28[20]), 20,21},
+};
+extern VTBL_ENTRY _ZTI4gg28[];
+extern VTBL_ENTRY _ZTV4gg28[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg28[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff283fooEv,_ZTv0_n12_N4ff283fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4ff283fooEv,_ZThn40_N4ff283fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ff283fooEv,_ZThn32_N4ff283fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg283fooEv,_ZTv0_n12_N4gg283fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg283fooEv,_ZThn40_N4gg283fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg283fooEv,_ZThn32_N4gg283fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg283fooEv,_ZThn12_N4gg283fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg28 = { "gg28", // class name
+ bases_gg28, 6,
+ &(vtc_gg28[0]), // expected_vtbl_contents
+ &(vtt_gg28[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg28),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg28),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg28),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names70,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa29 {
+ int a;
+ aa29(); // _ZN4aa29C1Ev
+ virtual void foo(); // _ZN4aa293fooEv
+ ~aa29(); // tgen
+};
+//SIG(-1 aa29) C1{ v1 Fi}
+
+
+ aa29 ::aa29(){ note_ctor("aa29", this);}
+void aa29 ::foo(){vfunc_called(this, "_ZN4aa293fooEv");}
+aa29 ::~aa29(){ note_dtor("aa29", this);} // tgen
+
+static void Test_aa29()
+{
+ extern Class_Descriptor cd_aa29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa29, buf);
+ aa29 *dp, &lv = *(dp=new (buf) aa29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa29)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa29.a");
+ test_class_info(&lv, &cd_aa29);
+ dp->~aa29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa29(Test_aa29, "aa29", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa29C1Ev();
+extern void _ZN4aa29D1Ev();
+Name_Map name_map_aa29[] = {
+ NSPAIR(_ZN4aa29C1Ev),
+ NSPAIR(_ZN4aa29D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa29[];
+extern void _ZN4aa293fooEv();
+static VTBL_ENTRY vtc_aa29[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa29[0]),
+ (VTBL_ENTRY)&_ZN4aa293fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa29[];
+extern VTBL_ENTRY _ZTV4aa29[];
+Class_Descriptor cd_aa29 = { "aa29", // class name
+ 0,0,//no base classes
+ &(vtc_aa29[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa29),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa29),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb29 {
+ int b;
+ bb29(); // _ZN4bb29C1Ev
+ virtual void foo(); // _ZN4bb293fooEv
+ ~bb29(); // tgen
+};
+//SIG(-1 bb29) C1{ v1 Fi}
+
+
+ bb29 ::bb29(){ note_ctor("bb29", this);}
+void bb29 ::foo(){vfunc_called(this, "_ZN4bb293fooEv");}
+bb29 ::~bb29(){ note_dtor("bb29", this);} // tgen
+
+static void Test_bb29()
+{
+ extern Class_Descriptor cd_bb29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb29, buf);
+ bb29 *dp, &lv = *(dp=new (buf) bb29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb29)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb29.b");
+ test_class_info(&lv, &cd_bb29);
+ dp->~bb29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb29(Test_bb29, "bb29", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb29C1Ev();
+extern void _ZN4bb29D1Ev();
+Name_Map name_map_bb29[] = {
+ NSPAIR(_ZN4bb29C1Ev),
+ NSPAIR(_ZN4bb29D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb29[];
+extern void _ZN4bb293fooEv();
+static VTBL_ENTRY vtc_bb29[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb29[0]),
+ (VTBL_ENTRY)&_ZN4bb293fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb29[];
+extern VTBL_ENTRY _ZTV4bb29[];
+Class_Descriptor cd_bb29 = { "bb29", // class name
+ 0,0,//no base classes
+ &(vtc_bb29[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb29),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb29),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc29 {
+ int c;
+ cc29(); // _ZN4cc29C1Ev
+ virtual void foo(); // _ZN4cc293fooEv
+ ~cc29(); // tgen
+};
+//SIG(-1 cc29) C1{ v1 Fi}
+
+
+ cc29 ::cc29(){ note_ctor("cc29", this);}
+void cc29 ::foo(){vfunc_called(this, "_ZN4cc293fooEv");}
+cc29 ::~cc29(){ note_dtor("cc29", this);} // tgen
+
+static void Test_cc29()
+{
+ extern Class_Descriptor cd_cc29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc29, buf);
+ cc29 *dp, &lv = *(dp=new (buf) cc29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc29)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc29.c");
+ test_class_info(&lv, &cd_cc29);
+ dp->~cc29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc29(Test_cc29, "cc29", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc29C1Ev();
+extern void _ZN4cc29D1Ev();
+Name_Map name_map_cc29[] = {
+ NSPAIR(_ZN4cc29C1Ev),
+ NSPAIR(_ZN4cc29D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc29[];
+extern void _ZN4cc293fooEv();
+static VTBL_ENTRY vtc_cc29[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc29[0]),
+ (VTBL_ENTRY)&_ZN4cc293fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc29[];
+extern VTBL_ENTRY _ZTV4cc29[];
+Class_Descriptor cd_cc29 = { "cc29", // class name
+ 0,0,//no base classes
+ &(vtc_cc29[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc29),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc29),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd29 {
+ int d;
+ dd29(); // _ZN4dd29C1Ev
+ virtual void foo(); // _ZN4dd293fooEv
+ ~dd29(); // tgen
+};
+//SIG(-1 dd29) C1{ v1 Fi}
+
+
+ dd29 ::dd29(){ note_ctor("dd29", this);}
+void dd29 ::foo(){vfunc_called(this, "_ZN4dd293fooEv");}
+dd29 ::~dd29(){ note_dtor("dd29", this);} // tgen
+
+static void Test_dd29()
+{
+ extern Class_Descriptor cd_dd29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd29, buf);
+ dd29 *dp, &lv = *(dp=new (buf) dd29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd29)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd29.d");
+ test_class_info(&lv, &cd_dd29);
+ dp->~dd29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd29(Test_dd29, "dd29", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd29C1Ev();
+extern void _ZN4dd29D1Ev();
+Name_Map name_map_dd29[] = {
+ NSPAIR(_ZN4dd29C1Ev),
+ NSPAIR(_ZN4dd29D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd29[];
+extern void _ZN4dd293fooEv();
+static VTBL_ENTRY vtc_dd29[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd29[0]),
+ (VTBL_ENTRY)&_ZN4dd293fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd29[];
+extern VTBL_ENTRY _ZTV4dd29[];
+Class_Descriptor cd_dd29 = { "dd29", // class name
+ 0,0,//no base classes
+ &(vtc_dd29[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd29),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd29),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee29 : virtual aa29 , bb29 {
+ int e;
+ ee29(const ABISELECT(__tsi64,int) *const *); // _ZN4ee29C2Ev
+ virtual void foo(); // _ZN4ee293fooEv
+ ~ee29(); // tgen
+ ee29(); // tgen
+};
+//SIG(-1 ee29) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee29 ::ee29(const ABISELECT(__tsi64,int) *const *){}
+void ee29 ::foo(){vfunc_called(this, "_ZN4ee293fooEv");}
+ee29 ::~ee29(){ note_dtor("ee29", this);} // tgen
+ee29 ::ee29(){ note_ctor("ee29", this);} // tgen
+
+static void Test_ee29()
+{
+ extern Class_Descriptor cd_ee29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee29, buf);
+ ee29 *dp, &lv = *(dp=new (buf) ee29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee29)");
+ check_base_class_offset(lv, (aa29*), ABISELECT(16,12), "ee29");
+ check_base_class_offset(lv, (bb29*), 0, "ee29");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee29.e");
+ test_class_info(&lv, &cd_ee29);
+ dp->~ee29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee29(Test_ee29, "ee29", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee29C1Ev();
+extern void _ZN4ee29D1Ev();
+Name_Map name_map_ee29[] = {
+ NSPAIR(_ZN4ee29C1Ev),
+ NSPAIR(_ZN4ee29D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa29;
+extern VTBL_ENTRY _ZTI4aa29[];
+extern VTBL_ENTRY _ZTV4aa29[];
+extern Class_Descriptor cd_bb29;
+extern VTBL_ENTRY _ZTI4bb29[];
+extern VTBL_ENTRY _ZTV4bb29[];
+static Base_Class bases_ee29[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa29, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb29, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee29[];
+extern void _ZN4ee293fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee293fooEv,_ZTv0_n12_N4ee293fooEv)();
+extern void ABISELECT(_ZThn16_N4ee293fooEv,_ZThn12_N4ee293fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee29[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee29[0]),
+ (VTBL_ENTRY)&_ZN4ee293fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee293fooEv,_ZTv0_n12_N4ee293fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee29[];
+static VTT_ENTRY vtt_ee29[] = {
+ {&(_ZTV4ee29[3]), 3,8},
+ {&(_ZTV4ee29[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee29[];
+extern VTBL_ENTRY _ZTV4ee29[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee29[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee293fooEv,_ZTv0_n12_N4ee293fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee293fooEv,_ZThn12_N4ee293fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee29 = { "ee29", // class name
+ bases_ee29, 2,
+ &(vtc_ee29[0]), // expected_vtbl_contents
+ &(vtt_ee29[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee29),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee29),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee29),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names71,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff29 : virtual cc29 , virtual dd29 {
+ int f;
+ ff29(const ABISELECT(__tsi64,int) *const *); // _ZN4ff29C2Ev
+ virtual void foo(); // _ZN4ff293fooEv
+ ~ff29(); // tgen
+ ff29(); // tgen
+};
+//SIG(-1 ff29) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff29 ::ff29(const ABISELECT(__tsi64,int) *const *){}
+void ff29 ::foo(){vfunc_called(this, "_ZN4ff293fooEv");}
+ff29 ::~ff29(){ note_dtor("ff29", this);} // tgen
+ff29 ::ff29(){ note_ctor("ff29", this);} // tgen
+
+static void Test_ff29()
+{
+ extern Class_Descriptor cd_ff29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff29, buf);
+ ff29 *dp, &lv = *(dp=new (buf) ff29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff29)");
+ check_base_class_offset(lv, (cc29*), ABISELECT(16,8), "ff29");
+ check_base_class_offset(lv, (dd29*), ABISELECT(32,16), "ff29");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff29.f");
+ test_class_info(&lv, &cd_ff29);
+ dp->~ff29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff29(Test_ff29, "ff29", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff29C1Ev();
+extern void _ZN4ff29D1Ev();
+Name_Map name_map_ff29[] = {
+ NSPAIR(_ZN4ff29C1Ev),
+ NSPAIR(_ZN4ff29D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc29;
+extern VTBL_ENTRY _ZTI4cc29[];
+extern VTBL_ENTRY _ZTV4cc29[];
+extern Class_Descriptor cd_dd29;
+extern VTBL_ENTRY _ZTI4dd29[];
+extern VTBL_ENTRY _ZTV4dd29[];
+static Base_Class bases_ff29[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc29, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd29, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff29[];
+extern void _ZN4ff293fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv)();
+extern void ABISELECT(_ZThn16_N4ff293fooEv,_ZThn8_N4ff293fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv)();
+extern void ABISELECT(_ZThn32_N4ff293fooEv,_ZThn16_N4ff293fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff29[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff29[0]),
+ (VTBL_ENTRY)&_ZN4ff293fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff29[];
+static VTT_ENTRY vtt_ff29[] = {
+ {&(_ZTV4ff29[4]), 4,13},
+ {&(_ZTV4ff29[8]), 8,13},
+ {&(_ZTV4ff29[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff29[];
+extern VTBL_ENTRY _ZTV4ff29[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff29[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff293fooEv,_ZThn16_N4ff293fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff293fooEv,_ZThn8_N4ff293fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff29 = { "ff29", // class name
+ bases_ff29, 2,
+ &(vtc_ff29[0]), // expected_vtbl_contents
+ &(vtt_ff29[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff29),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff29),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff29),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names72,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg29 : virtual ee29 , ff29 {
+ int g;
+ gg29(const ABISELECT(__tsi64,int) *const *); // _ZN4gg29C2Ev
+ virtual void foo(); // _ZN4gg293fooEv
+ ~gg29(); // tgen
+ gg29(); // tgen
+};
+//SIG(1 gg29) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg29 ::gg29(const ABISELECT(__tsi64,int) *const *){}
+void gg29 ::foo(){vfunc_called(this, "_ZN4gg293fooEv");}
+gg29 ::~gg29(){ note_dtor("gg29", this);} // tgen
+gg29 ::gg29(){ note_ctor("gg29", this);} // tgen
+
+static void Test_gg29()
+{
+ extern Class_Descriptor cd_gg29;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg29, buf);
+ gg29 *dp, &lv = *(dp=new (buf) gg29());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg29)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg29)");
+ check_base_class_offset(lv, (aa29*)(ee29*), ABISELECT(32,24), "gg29");
+ check_base_class_offset(lv, (bb29*)(ee29*), ABISELECT(16,12), "gg29");
+ check_base_class_offset(lv, (ee29*), ABISELECT(16,12), "gg29");
+ check_base_class_offset(lv, (cc29*)(ff29*), ABISELECT(48,32), "gg29");
+ check_base_class_offset(lv, (dd29*)(ff29*), ABISELECT(64,40), "gg29");
+ check_base_class_offset(lv, (ff29*), 0, "gg29");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg29.g");
+ test_class_info(&lv, &cd_gg29);
+ dp->~gg29();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg29(Test_gg29, "gg29", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg29C1Ev();
+extern void _ZN4gg29D1Ev();
+Name_Map name_map_gg29[] = {
+ NSPAIR(_ZN4gg29C1Ev),
+ NSPAIR(_ZN4gg29D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa29;
+extern VTBL_ENTRY _ZTI4aa29[];
+extern VTBL_ENTRY _ZTV4aa29[];
+extern Class_Descriptor cd_bb29;
+extern VTBL_ENTRY _ZTI4bb29[];
+extern VTBL_ENTRY _ZTV4bb29[];
+extern Class_Descriptor cd_ee29;
+extern VTBL_ENTRY _ZTI4ee29[];
+extern VTBL_ENTRY _ZTV4ee29[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee29[];
+extern Class_Descriptor cd_cc29;
+extern VTBL_ENTRY _ZTI4cc29[];
+extern VTBL_ENTRY _ZTV4cc29[];
+extern Class_Descriptor cd_dd29;
+extern VTBL_ENTRY _ZTI4dd29[];
+extern VTBL_ENTRY _ZTV4dd29[];
+extern Class_Descriptor cd_ff29;
+extern VTBL_ENTRY _ZTI4ff29[];
+extern VTBL_ENTRY _ZTV4ff29[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff29[];
+static Base_Class bases_gg29[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa29, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb29, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee29, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc29, ABISELECT(48,32), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd29, ABISELECT(64,40), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff29, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg29[];
+extern void _ZN4gg293fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg293fooEv,_ZTv0_n16_N4gg293fooEv)();
+extern void ABISELECT(_ZThn16_N4gg293fooEv,_ZThn12_N4gg293fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv)();
+extern void ABISELECT(_ZThn32_N4gg293fooEv,_ZThn24_N4gg293fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv)();
+extern void ABISELECT(_ZThn48_N4gg293fooEv,_ZThn32_N4gg293fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv)();
+extern void ABISELECT(_ZThn64_N4gg293fooEv,_ZThn40_N4gg293fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg29[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg29[0]),
+ (VTBL_ENTRY)&_ZN4gg293fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg293fooEv,_ZTv0_n16_N4gg293fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI4gg29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv),
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4gg29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg29[];
+extern void _ZN4ff293fooEv();
+static VTBL_ENTRY _tg__ZTV4ff29__4gg29[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff29[0]),
+ (VTBL_ENTRY)&_ZN4ff293fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv)();
+extern void ABISELECT(_ZThn48_N4ff293fooEv,_ZThn32_N4ff293fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc29__4ff29__4gg29[] = {
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4ff29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv)();
+extern void ABISELECT(_ZThn64_N4ff293fooEv,_ZThn40_N4ff293fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd29__4ff29__4gg29[] = {
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4ff29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv),
+};
+extern void _ZN4ee293fooEv();
+static VTBL_ENTRY _tg__ZTV4ee29__4gg29[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee29[0]),
+ (VTBL_ENTRY)&_ZN4ee293fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee293fooEv,_ZTv0_n12_N4ee293fooEv)();
+extern void ABISELECT(_ZThn16_N4ee293fooEv,_ZThn12_N4ee293fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa29__4ee29__4gg29[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee29[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee293fooEv,_ZTv0_n12_N4ee293fooEv),
+};
+static VTT_ENTRY vtt_gg29[] = {
+ {&(_ZTV4gg29[6]), 6,24},
+ {&(_tg__ZTV4ff29__4gg29[4]), 4,5},
+ {&(_tg__ZTV4cc29__4ff29__4gg29[3]), 3,4},
+ {&(_tg__ZTV4dd29__4ff29__4gg29[3]), 3,4},
+ {&(_ZTV4gg29[11]), 11,24},
+ {&(_ZTV4gg29[15]), 15,24},
+ {&(_ZTV4gg29[19]), 19,24},
+ {&(_ZTV4gg29[23]), 23,24},
+ {&(_tg__ZTV4ee29__4gg29[3]), 3,4},
+ {&(_tg__ZTV4aa29__4ee29__4gg29[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg29[];
+extern VTBL_ENTRY _ZTV4gg29[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg29[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee293fooEv,_ZTv0_n12_N4ee293fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee293fooEv,_ZThn12_N4ee293fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff293fooEv,_ZTv0_n12_N4ff293fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4ff293fooEv,_ZThn40_N4ff293fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ff293fooEv,_ZThn32_N4ff293fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg293fooEv,_ZTv0_n12_N4gg293fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg293fooEv,_ZThn40_N4gg293fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg293fooEv,_ZThn32_N4gg293fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg293fooEv,_ZThn24_N4gg293fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg293fooEv,_ZTv0_n16_N4gg293fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg293fooEv,_ZThn12_N4gg293fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg29 = { "gg29", // class name
+ bases_gg29, 6,
+ &(vtc_gg29[0]), // expected_vtbl_contents
+ &(vtt_gg29[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg29),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg29),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg29),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names73,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa30 {
+ int a;
+ aa30(); // _ZN4aa30C1Ev
+ virtual void foo(); // _ZN4aa303fooEv
+ ~aa30(); // tgen
+};
+//SIG(-1 aa30) C1{ v1 Fi}
+
+
+ aa30 ::aa30(){ note_ctor("aa30", this);}
+void aa30 ::foo(){vfunc_called(this, "_ZN4aa303fooEv");}
+aa30 ::~aa30(){ note_dtor("aa30", this);} // tgen
+
+static void Test_aa30()
+{
+ extern Class_Descriptor cd_aa30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa30, buf);
+ aa30 *dp, &lv = *(dp=new (buf) aa30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa30)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa30.a");
+ test_class_info(&lv, &cd_aa30);
+ dp->~aa30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa30(Test_aa30, "aa30", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa30C1Ev();
+extern void _ZN4aa30D1Ev();
+Name_Map name_map_aa30[] = {
+ NSPAIR(_ZN4aa30C1Ev),
+ NSPAIR(_ZN4aa30D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa30[];
+extern void _ZN4aa303fooEv();
+static VTBL_ENTRY vtc_aa30[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa30[0]),
+ (VTBL_ENTRY)&_ZN4aa303fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa30[];
+extern VTBL_ENTRY _ZTV4aa30[];
+Class_Descriptor cd_aa30 = { "aa30", // class name
+ 0,0,//no base classes
+ &(vtc_aa30[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa30),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa30),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb30 {
+ int b;
+ bb30(); // _ZN4bb30C1Ev
+ virtual void foo(); // _ZN4bb303fooEv
+ ~bb30(); // tgen
+};
+//SIG(-1 bb30) C1{ v1 Fi}
+
+
+ bb30 ::bb30(){ note_ctor("bb30", this);}
+void bb30 ::foo(){vfunc_called(this, "_ZN4bb303fooEv");}
+bb30 ::~bb30(){ note_dtor("bb30", this);} // tgen
+
+static void Test_bb30()
+{
+ extern Class_Descriptor cd_bb30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb30, buf);
+ bb30 *dp, &lv = *(dp=new (buf) bb30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb30)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb30.b");
+ test_class_info(&lv, &cd_bb30);
+ dp->~bb30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb30(Test_bb30, "bb30", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb30C1Ev();
+extern void _ZN4bb30D1Ev();
+Name_Map name_map_bb30[] = {
+ NSPAIR(_ZN4bb30C1Ev),
+ NSPAIR(_ZN4bb30D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb30[];
+extern void _ZN4bb303fooEv();
+static VTBL_ENTRY vtc_bb30[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb30[0]),
+ (VTBL_ENTRY)&_ZN4bb303fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+Class_Descriptor cd_bb30 = { "bb30", // class name
+ 0,0,//no base classes
+ &(vtc_bb30[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb30),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb30),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc30 {
+ int c;
+ cc30(); // _ZN4cc30C1Ev
+ virtual void foo(); // _ZN4cc303fooEv
+ ~cc30(); // tgen
+};
+//SIG(-1 cc30) C1{ v1 Fi}
+
+
+ cc30 ::cc30(){ note_ctor("cc30", this);}
+void cc30 ::foo(){vfunc_called(this, "_ZN4cc303fooEv");}
+cc30 ::~cc30(){ note_dtor("cc30", this);} // tgen
+
+static void Test_cc30()
+{
+ extern Class_Descriptor cd_cc30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc30, buf);
+ cc30 *dp, &lv = *(dp=new (buf) cc30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc30)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc30.c");
+ test_class_info(&lv, &cd_cc30);
+ dp->~cc30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc30(Test_cc30, "cc30", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc30C1Ev();
+extern void _ZN4cc30D1Ev();
+Name_Map name_map_cc30[] = {
+ NSPAIR(_ZN4cc30C1Ev),
+ NSPAIR(_ZN4cc30D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc30[];
+extern void _ZN4cc303fooEv();
+static VTBL_ENTRY vtc_cc30[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc30[0]),
+ (VTBL_ENTRY)&_ZN4cc303fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc30[];
+extern VTBL_ENTRY _ZTV4cc30[];
+Class_Descriptor cd_cc30 = { "cc30", // class name
+ 0,0,//no base classes
+ &(vtc_cc30[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc30),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc30),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd30 {
+ int d;
+ dd30(); // _ZN4dd30C1Ev
+ virtual void foo(); // _ZN4dd303fooEv
+ ~dd30(); // tgen
+};
+//SIG(-1 dd30) C1{ v1 Fi}
+
+
+ dd30 ::dd30(){ note_ctor("dd30", this);}
+void dd30 ::foo(){vfunc_called(this, "_ZN4dd303fooEv");}
+dd30 ::~dd30(){ note_dtor("dd30", this);} // tgen
+
+static void Test_dd30()
+{
+ extern Class_Descriptor cd_dd30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd30, buf);
+ dd30 *dp, &lv = *(dp=new (buf) dd30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd30)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd30.d");
+ test_class_info(&lv, &cd_dd30);
+ dp->~dd30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd30(Test_dd30, "dd30", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd30C1Ev();
+extern void _ZN4dd30D1Ev();
+Name_Map name_map_dd30[] = {
+ NSPAIR(_ZN4dd30C1Ev),
+ NSPAIR(_ZN4dd30D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd30[];
+extern void _ZN4dd303fooEv();
+static VTBL_ENTRY vtc_dd30[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd30[0]),
+ (VTBL_ENTRY)&_ZN4dd303fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd30[];
+extern VTBL_ENTRY _ZTV4dd30[];
+Class_Descriptor cd_dd30 = { "dd30", // class name
+ 0,0,//no base classes
+ &(vtc_dd30[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd30),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd30),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30 : aa30 , virtual bb30 {
+ int e;
+ ee30(const ABISELECT(__tsi64,int) *const *); // _ZN4ee30C2Ev
+ virtual void foo(); // _ZN4ee303fooEv
+ ~ee30(); // tgen
+ ee30(); // tgen
+};
+//SIG(-1 ee30) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee30 ::ee30(const ABISELECT(__tsi64,int) *const *){}
+void ee30 ::foo(){vfunc_called(this, "_ZN4ee303fooEv");}
+ee30 ::~ee30(){ note_dtor("ee30", this);} // tgen
+ee30 ::ee30(){ note_ctor("ee30", this);} // tgen
+
+static void Test_ee30()
+{
+ extern Class_Descriptor cd_ee30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee30, buf);
+ ee30 *dp, &lv = *(dp=new (buf) ee30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30)");
+ check_base_class_offset(lv, (aa30*), 0, "ee30");
+ check_base_class_offset(lv, (bb30*), ABISELECT(16,12), "ee30");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee30.e");
+ test_class_info(&lv, &cd_ee30);
+ dp->~ee30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30(Test_ee30, "ee30", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee30C1Ev();
+extern void _ZN4ee30D1Ev();
+Name_Map name_map_ee30[] = {
+ NSPAIR(_ZN4ee30C1Ev),
+ NSPAIR(_ZN4ee30D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa30;
+extern VTBL_ENTRY _ZTI4aa30[];
+extern VTBL_ENTRY _ZTV4aa30[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+static Base_Class bases_ee30[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb30, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee30[];
+extern void _ZN4ee303fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee303fooEv,_ZTv0_n12_N4ee303fooEv)();
+extern void ABISELECT(_ZThn16_N4ee303fooEv,_ZThn12_N4ee303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee30[0]),
+ (VTBL_ENTRY)&_ZN4ee303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee303fooEv,_ZTv0_n12_N4ee303fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee30[];
+static VTT_ENTRY vtt_ee30[] = {
+ {&(_ZTV4ee30[3]), 3,8},
+ {&(_ZTV4ee30[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee30[];
+extern VTBL_ENTRY _ZTV4ee30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee30[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee303fooEv,_ZTv0_n12_N4ee303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee303fooEv,_ZThn12_N4ee303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30 = { "ee30", // class name
+ bases_ee30, 2,
+ &(vtc_ee30[0]), // expected_vtbl_contents
+ &(vtt_ee30[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee30),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee30),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee30),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names74,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff30 : virtual cc30 , virtual dd30 {
+ int f;
+ ff30(const ABISELECT(__tsi64,int) *const *); // _ZN4ff30C2Ev
+ virtual void foo(); // _ZN4ff303fooEv
+ ~ff30(); // tgen
+ ff30(); // tgen
+};
+//SIG(-1 ff30) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff30 ::ff30(const ABISELECT(__tsi64,int) *const *){}
+void ff30 ::foo(){vfunc_called(this, "_ZN4ff303fooEv");}
+ff30 ::~ff30(){ note_dtor("ff30", this);} // tgen
+ff30 ::ff30(){ note_ctor("ff30", this);} // tgen
+
+static void Test_ff30()
+{
+ extern Class_Descriptor cd_ff30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff30, buf);
+ ff30 *dp, &lv = *(dp=new (buf) ff30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff30)");
+ check_base_class_offset(lv, (cc30*), ABISELECT(16,8), "ff30");
+ check_base_class_offset(lv, (dd30*), ABISELECT(32,16), "ff30");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff30.f");
+ test_class_info(&lv, &cd_ff30);
+ dp->~ff30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff30(Test_ff30, "ff30", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff30C1Ev();
+extern void _ZN4ff30D1Ev();
+Name_Map name_map_ff30[] = {
+ NSPAIR(_ZN4ff30C1Ev),
+ NSPAIR(_ZN4ff30D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc30;
+extern VTBL_ENTRY _ZTI4cc30[];
+extern VTBL_ENTRY _ZTV4cc30[];
+extern Class_Descriptor cd_dd30;
+extern VTBL_ENTRY _ZTI4dd30[];
+extern VTBL_ENTRY _ZTV4dd30[];
+static Base_Class bases_ff30[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc30, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd30, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff30[];
+extern void _ZN4ff303fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv)();
+extern void ABISELECT(_ZThn16_N4ff303fooEv,_ZThn8_N4ff303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv)();
+extern void ABISELECT(_ZThn32_N4ff303fooEv,_ZThn16_N4ff303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff30[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff30[0]),
+ (VTBL_ENTRY)&_ZN4ff303fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff30[];
+static VTT_ENTRY vtt_ff30[] = {
+ {&(_ZTV4ff30[4]), 4,13},
+ {&(_ZTV4ff30[8]), 8,13},
+ {&(_ZTV4ff30[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff30[];
+extern VTBL_ENTRY _ZTV4ff30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff30[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff303fooEv,_ZThn16_N4ff303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff303fooEv,_ZThn8_N4ff303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff30 = { "ff30", // class name
+ bases_ff30, 2,
+ &(vtc_ff30[0]), // expected_vtbl_contents
+ &(vtt_ff30[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff30),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff30),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff30),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names75,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg30 : virtual ee30 , ff30 {
+ int g;
+ gg30(const ABISELECT(__tsi64,int) *const *); // _ZN4gg30C2Ev
+ virtual void foo(); // _ZN4gg303fooEv
+ ~gg30(); // tgen
+ gg30(); // tgen
+};
+//SIG(1 gg30) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg30 ::gg30(const ABISELECT(__tsi64,int) *const *){}
+void gg30 ::foo(){vfunc_called(this, "_ZN4gg303fooEv");}
+gg30 ::~gg30(){ note_dtor("gg30", this);} // tgen
+gg30 ::gg30(){ note_ctor("gg30", this);} // tgen
+
+static void Test_gg30()
+{
+ extern Class_Descriptor cd_gg30;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg30, buf);
+ gg30 *dp, &lv = *(dp=new (buf) gg30());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg30)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg30)");
+ check_base_class_offset(lv, (aa30*)(ee30*), ABISELECT(16,12), "gg30");
+ check_base_class_offset(lv, (bb30*)(ee30*), ABISELECT(32,24), "gg30");
+ check_base_class_offset(lv, (ee30*), ABISELECT(16,12), "gg30");
+ check_base_class_offset(lv, (cc30*)(ff30*), ABISELECT(48,32), "gg30");
+ check_base_class_offset(lv, (dd30*)(ff30*), ABISELECT(64,40), "gg30");
+ check_base_class_offset(lv, (ff30*), 0, "gg30");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg30.g");
+ test_class_info(&lv, &cd_gg30);
+ dp->~gg30();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg30(Test_gg30, "gg30", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg30C1Ev();
+extern void _ZN4gg30D1Ev();
+Name_Map name_map_gg30[] = {
+ NSPAIR(_ZN4gg30C1Ev),
+ NSPAIR(_ZN4gg30D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa30;
+extern VTBL_ENTRY _ZTI4aa30[];
+extern VTBL_ENTRY _ZTV4aa30[];
+extern Class_Descriptor cd_bb30;
+extern VTBL_ENTRY _ZTI4bb30[];
+extern VTBL_ENTRY _ZTV4bb30[];
+extern Class_Descriptor cd_ee30;
+extern VTBL_ENTRY _ZTI4ee30[];
+extern VTBL_ENTRY _ZTV4ee30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee30[];
+extern Class_Descriptor cd_cc30;
+extern VTBL_ENTRY _ZTI4cc30[];
+extern VTBL_ENTRY _ZTV4cc30[];
+extern Class_Descriptor cd_dd30;
+extern VTBL_ENTRY _ZTI4dd30[];
+extern VTBL_ENTRY _ZTV4dd30[];
+extern Class_Descriptor cd_ff30;
+extern VTBL_ENTRY _ZTI4ff30[];
+extern VTBL_ENTRY _ZTV4ff30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff30[];
+static Base_Class bases_gg30[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa30, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb30, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee30, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc30, ABISELECT(48,32), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd30, ABISELECT(64,40), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff30, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg30[];
+extern void _ZN4gg303fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg303fooEv,_ZTv0_n16_N4gg303fooEv)();
+extern void ABISELECT(_ZThn16_N4gg303fooEv,_ZThn12_N4gg303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv)();
+extern void ABISELECT(_ZThn32_N4gg303fooEv,_ZThn24_N4gg303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv)();
+extern void ABISELECT(_ZThn48_N4gg303fooEv,_ZThn32_N4gg303fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv)();
+extern void ABISELECT(_ZThn64_N4gg303fooEv,_ZThn40_N4gg303fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg30[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg30[0]),
+ (VTBL_ENTRY)&_ZN4gg303fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg303fooEv,_ZTv0_n16_N4gg303fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI4gg30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv),
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4gg30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg30[];
+extern void _ZN4ff303fooEv();
+static VTBL_ENTRY _tg__ZTV4ff30__4gg30[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,32),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff30[0]),
+ (VTBL_ENTRY)&_ZN4ff303fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv)();
+extern void ABISELECT(_ZThn48_N4ff303fooEv,_ZThn32_N4ff303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc30__4ff30__4gg30[] = {
+ ABISELECT(-48,-32),
+ ABISELECT(-48,-32),
+ (VTBL_ENTRY)&(_ZTI4ff30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv)();
+extern void ABISELECT(_ZThn64_N4ff303fooEv,_ZThn40_N4ff303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd30__4ff30__4gg30[] = {
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4ff30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv),
+};
+extern void _ZN4ee303fooEv();
+static VTBL_ENTRY _tg__ZTV4ee30__4gg30[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee30[0]),
+ (VTBL_ENTRY)&_ZN4ee303fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee303fooEv,_ZTv0_n12_N4ee303fooEv)();
+extern void ABISELECT(_ZThn16_N4ee303fooEv,_ZThn12_N4ee303fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb30__4ee30__4gg30[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee30[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee303fooEv,_ZTv0_n12_N4ee303fooEv),
+};
+static VTT_ENTRY vtt_gg30[] = {
+ {&(_ZTV4gg30[6]), 6,24},
+ {&(_tg__ZTV4ff30__4gg30[4]), 4,5},
+ {&(_tg__ZTV4cc30__4ff30__4gg30[3]), 3,4},
+ {&(_tg__ZTV4dd30__4ff30__4gg30[3]), 3,4},
+ {&(_ZTV4gg30[11]), 11,24},
+ {&(_ZTV4gg30[15]), 15,24},
+ {&(_ZTV4gg30[19]), 19,24},
+ {&(_ZTV4gg30[23]), 23,24},
+ {&(_tg__ZTV4ee30__4gg30[3]), 3,4},
+ {&(_tg__ZTV4bb30__4ee30__4gg30[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg30[];
+extern VTBL_ENTRY _ZTV4gg30[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg30[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee303fooEv,_ZTv0_n12_N4ee303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee303fooEv,_ZThn12_N4ee303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff303fooEv,_ZTv0_n12_N4ff303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4ff303fooEv,_ZThn40_N4ff303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4ff303fooEv,_ZThn32_N4ff303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg303fooEv,_ZTv0_n12_N4gg303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg303fooEv,_ZThn40_N4gg303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg303fooEv,_ZThn32_N4gg303fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg303fooEv,_ZThn24_N4gg303fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg303fooEv,_ZTv0_n16_N4gg303fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg303fooEv,_ZThn12_N4gg303fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg30 = { "gg30", // class name
+ bases_gg30, 6,
+ &(vtc_gg30[0]), // expected_vtbl_contents
+ &(vtt_gg30[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg30),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg30),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg30),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa31 {
+ int a;
+ aa31(); // _ZN4aa31C1Ev
+ virtual void foo(); // _ZN4aa313fooEv
+ ~aa31(); // tgen
+};
+//SIG(-1 aa31) C1{ v1 Fi}
+
+
+ aa31 ::aa31(){ note_ctor("aa31", this);}
+void aa31 ::foo(){vfunc_called(this, "_ZN4aa313fooEv");}
+aa31 ::~aa31(){ note_dtor("aa31", this);} // tgen
+
+static void Test_aa31()
+{
+ extern Class_Descriptor cd_aa31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa31, buf);
+ aa31 *dp, &lv = *(dp=new (buf) aa31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa31)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa31.a");
+ test_class_info(&lv, &cd_aa31);
+ dp->~aa31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa31(Test_aa31, "aa31", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa31C1Ev();
+extern void _ZN4aa31D1Ev();
+Name_Map name_map_aa31[] = {
+ NSPAIR(_ZN4aa31C1Ev),
+ NSPAIR(_ZN4aa31D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa31[];
+extern void _ZN4aa313fooEv();
+static VTBL_ENTRY vtc_aa31[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa31[0]),
+ (VTBL_ENTRY)&_ZN4aa313fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa31[];
+extern VTBL_ENTRY _ZTV4aa31[];
+Class_Descriptor cd_aa31 = { "aa31", // class name
+ 0,0,//no base classes
+ &(vtc_aa31[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa31),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa31),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb31 {
+ int b;
+ bb31(); // _ZN4bb31C1Ev
+ virtual void foo(); // _ZN4bb313fooEv
+ ~bb31(); // tgen
+};
+//SIG(-1 bb31) C1{ v1 Fi}
+
+
+ bb31 ::bb31(){ note_ctor("bb31", this);}
+void bb31 ::foo(){vfunc_called(this, "_ZN4bb313fooEv");}
+bb31 ::~bb31(){ note_dtor("bb31", this);} // tgen
+
+static void Test_bb31()
+{
+ extern Class_Descriptor cd_bb31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb31, buf);
+ bb31 *dp, &lv = *(dp=new (buf) bb31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb31)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb31.b");
+ test_class_info(&lv, &cd_bb31);
+ dp->~bb31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb31(Test_bb31, "bb31", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb31C1Ev();
+extern void _ZN4bb31D1Ev();
+Name_Map name_map_bb31[] = {
+ NSPAIR(_ZN4bb31C1Ev),
+ NSPAIR(_ZN4bb31D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb31[];
+extern void _ZN4bb313fooEv();
+static VTBL_ENTRY vtc_bb31[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb31[0]),
+ (VTBL_ENTRY)&_ZN4bb313fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb31[];
+extern VTBL_ENTRY _ZTV4bb31[];
+Class_Descriptor cd_bb31 = { "bb31", // class name
+ 0,0,//no base classes
+ &(vtc_bb31[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb31),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb31),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc31 {
+ int c;
+ cc31(); // _ZN4cc31C1Ev
+ virtual void foo(); // _ZN4cc313fooEv
+ ~cc31(); // tgen
+};
+//SIG(-1 cc31) C1{ v1 Fi}
+
+
+ cc31 ::cc31(){ note_ctor("cc31", this);}
+void cc31 ::foo(){vfunc_called(this, "_ZN4cc313fooEv");}
+cc31 ::~cc31(){ note_dtor("cc31", this);} // tgen
+
+static void Test_cc31()
+{
+ extern Class_Descriptor cd_cc31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc31, buf);
+ cc31 *dp, &lv = *(dp=new (buf) cc31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc31)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc31.c");
+ test_class_info(&lv, &cd_cc31);
+ dp->~cc31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc31(Test_cc31, "cc31", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc31C1Ev();
+extern void _ZN4cc31D1Ev();
+Name_Map name_map_cc31[] = {
+ NSPAIR(_ZN4cc31C1Ev),
+ NSPAIR(_ZN4cc31D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc31[];
+extern void _ZN4cc313fooEv();
+static VTBL_ENTRY vtc_cc31[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc31[0]),
+ (VTBL_ENTRY)&_ZN4cc313fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc31[];
+extern VTBL_ENTRY _ZTV4cc31[];
+Class_Descriptor cd_cc31 = { "cc31", // class name
+ 0,0,//no base classes
+ &(vtc_cc31[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc31),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc31),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd31 {
+ int d;
+ dd31(); // _ZN4dd31C1Ev
+ virtual void foo(); // _ZN4dd313fooEv
+ ~dd31(); // tgen
+};
+//SIG(-1 dd31) C1{ v1 Fi}
+
+
+ dd31 ::dd31(){ note_ctor("dd31", this);}
+void dd31 ::foo(){vfunc_called(this, "_ZN4dd313fooEv");}
+dd31 ::~dd31(){ note_dtor("dd31", this);} // tgen
+
+static void Test_dd31()
+{
+ extern Class_Descriptor cd_dd31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd31, buf);
+ dd31 *dp, &lv = *(dp=new (buf) dd31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd31)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd31.d");
+ test_class_info(&lv, &cd_dd31);
+ dp->~dd31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd31(Test_dd31, "dd31", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd31C1Ev();
+extern void _ZN4dd31D1Ev();
+Name_Map name_map_dd31[] = {
+ NSPAIR(_ZN4dd31C1Ev),
+ NSPAIR(_ZN4dd31D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd31[];
+extern void _ZN4dd313fooEv();
+static VTBL_ENTRY vtc_dd31[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd31[0]),
+ (VTBL_ENTRY)&_ZN4dd313fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd31[];
+extern VTBL_ENTRY _ZTV4dd31[];
+Class_Descriptor cd_dd31 = { "dd31", // class name
+ 0,0,//no base classes
+ &(vtc_dd31[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd31),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd31),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31 : virtual aa31 , virtual bb31 {
+ int e;
+ ee31(const ABISELECT(__tsi64,int) *const *); // _ZN4ee31C2Ev
+ virtual void foo(); // _ZN4ee313fooEv
+ ~ee31(); // tgen
+ ee31(); // tgen
+};
+//SIG(-1 ee31) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee31 ::ee31(const ABISELECT(__tsi64,int) *const *){}
+void ee31 ::foo(){vfunc_called(this, "_ZN4ee313fooEv");}
+ee31 ::~ee31(){ note_dtor("ee31", this);} // tgen
+ee31 ::ee31(){ note_ctor("ee31", this);} // tgen
+
+static void Test_ee31()
+{
+ extern Class_Descriptor cd_ee31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee31, buf);
+ ee31 *dp, &lv = *(dp=new (buf) ee31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31)");
+ check_base_class_offset(lv, (aa31*), ABISELECT(16,8), "ee31");
+ check_base_class_offset(lv, (bb31*), ABISELECT(32,16), "ee31");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31.e");
+ test_class_info(&lv, &cd_ee31);
+ dp->~ee31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31(Test_ee31, "ee31", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee31C1Ev();
+extern void _ZN4ee31D1Ev();
+Name_Map name_map_ee31[] = {
+ NSPAIR(_ZN4ee31C1Ev),
+ NSPAIR(_ZN4ee31D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa31;
+extern VTBL_ENTRY _ZTI4aa31[];
+extern VTBL_ENTRY _ZTV4aa31[];
+extern Class_Descriptor cd_bb31;
+extern VTBL_ENTRY _ZTI4bb31[];
+extern VTBL_ENTRY _ZTV4bb31[];
+static Base_Class bases_ee31[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa31, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb31, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee31[];
+extern void _ZN4ee313fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv)();
+extern void ABISELECT(_ZThn16_N4ee313fooEv,_ZThn8_N4ee313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv)();
+extern void ABISELECT(_ZThn32_N4ee313fooEv,_ZThn16_N4ee313fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee31[0]),
+ (VTBL_ENTRY)&_ZN4ee313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee31[];
+static VTT_ENTRY vtt_ee31[] = {
+ {&(_ZTV4ee31[4]), 4,13},
+ {&(_ZTV4ee31[8]), 8,13},
+ {&(_ZTV4ee31[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee31[];
+extern VTBL_ENTRY _ZTV4ee31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee31[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee313fooEv,_ZThn16_N4ee313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee313fooEv,_ZThn8_N4ee313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31 = { "ee31", // class name
+ bases_ee31, 2,
+ &(vtc_ee31[0]), // expected_vtbl_contents
+ &(vtt_ee31[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee31),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee31),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee31),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names77,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff31 : virtual cc31 , virtual dd31 {
+ int f;
+ ff31(const ABISELECT(__tsi64,int) *const *); // _ZN4ff31C2Ev
+ virtual void foo(); // _ZN4ff313fooEv
+ ~ff31(); // tgen
+ ff31(); // tgen
+};
+//SIG(-1 ff31) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff31 ::ff31(const ABISELECT(__tsi64,int) *const *){}
+void ff31 ::foo(){vfunc_called(this, "_ZN4ff313fooEv");}
+ff31 ::~ff31(){ note_dtor("ff31", this);} // tgen
+ff31 ::ff31(){ note_ctor("ff31", this);} // tgen
+
+static void Test_ff31()
+{
+ extern Class_Descriptor cd_ff31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff31, buf);
+ ff31 *dp, &lv = *(dp=new (buf) ff31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff31)");
+ check_base_class_offset(lv, (cc31*), ABISELECT(16,8), "ff31");
+ check_base_class_offset(lv, (dd31*), ABISELECT(32,16), "ff31");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff31.f");
+ test_class_info(&lv, &cd_ff31);
+ dp->~ff31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff31(Test_ff31, "ff31", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff31C1Ev();
+extern void _ZN4ff31D1Ev();
+Name_Map name_map_ff31[] = {
+ NSPAIR(_ZN4ff31C1Ev),
+ NSPAIR(_ZN4ff31D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc31;
+extern VTBL_ENTRY _ZTI4cc31[];
+extern VTBL_ENTRY _ZTV4cc31[];
+extern Class_Descriptor cd_dd31;
+extern VTBL_ENTRY _ZTI4dd31[];
+extern VTBL_ENTRY _ZTV4dd31[];
+static Base_Class bases_ff31[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc31, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd31, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff31[];
+extern void _ZN4ff313fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv)();
+extern void ABISELECT(_ZThn16_N4ff313fooEv,_ZThn8_N4ff313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv)();
+extern void ABISELECT(_ZThn32_N4ff313fooEv,_ZThn16_N4ff313fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff31[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff31[0]),
+ (VTBL_ENTRY)&_ZN4ff313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff31[];
+static VTT_ENTRY vtt_ff31[] = {
+ {&(_ZTV4ff31[4]), 4,13},
+ {&(_ZTV4ff31[8]), 8,13},
+ {&(_ZTV4ff31[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff31[];
+extern VTBL_ENTRY _ZTV4ff31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff31[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff313fooEv,_ZThn16_N4ff313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff313fooEv,_ZThn8_N4ff313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff31 = { "ff31", // class name
+ bases_ff31, 2,
+ &(vtc_ff31[0]), // expected_vtbl_contents
+ &(vtt_ff31[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff31),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff31),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff31),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names78,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg31 : virtual ee31 , ff31 {
+ int g;
+ gg31(const ABISELECT(__tsi64,int) *const *); // _ZN4gg31C2Ev
+ virtual void foo(); // _ZN4gg313fooEv
+ ~gg31(); // tgen
+ gg31(); // tgen
+};
+//SIG(1 gg31) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} BC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg31 ::gg31(const ABISELECT(__tsi64,int) *const *){}
+void gg31 ::foo(){vfunc_called(this, "_ZN4gg313fooEv");}
+gg31 ::~gg31(){ note_dtor("gg31", this);} // tgen
+gg31 ::gg31(){ note_ctor("gg31", this);} // tgen
+
+static void Test_gg31()
+{
+ extern Class_Descriptor cd_gg31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg31, buf);
+ gg31 *dp, &lv = *(dp=new (buf) gg31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg31)");
+ check_base_class_offset(lv, (aa31*)(ee31*), ABISELECT(32,20), "gg31");
+ check_base_class_offset(lv, (bb31*)(ee31*), ABISELECT(48,28), "gg31");
+ check_base_class_offset(lv, (ee31*), ABISELECT(16,12), "gg31");
+ check_base_class_offset(lv, (cc31*)(ff31*), ABISELECT(64,36), "gg31");
+ check_base_class_offset(lv, (dd31*)(ff31*), ABISELECT(80,44), "gg31");
+ check_base_class_offset(lv, (ff31*), 0, "gg31");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg31.g");
+ test_class_info(&lv, &cd_gg31);
+ dp->~gg31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg31(Test_gg31, "gg31", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg31C1Ev();
+extern void _ZN4gg31D1Ev();
+Name_Map name_map_gg31[] = {
+ NSPAIR(_ZN4gg31C1Ev),
+ NSPAIR(_ZN4gg31D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa31;
+extern VTBL_ENTRY _ZTI4aa31[];
+extern VTBL_ENTRY _ZTV4aa31[];
+extern Class_Descriptor cd_bb31;
+extern VTBL_ENTRY _ZTI4bb31[];
+extern VTBL_ENTRY _ZTV4bb31[];
+extern Class_Descriptor cd_ee31;
+extern VTBL_ENTRY _ZTI4ee31[];
+extern VTBL_ENTRY _ZTV4ee31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee31[];
+extern Class_Descriptor cd_cc31;
+extern VTBL_ENTRY _ZTI4cc31[];
+extern VTBL_ENTRY _ZTV4cc31[];
+extern Class_Descriptor cd_dd31;
+extern VTBL_ENTRY _ZTI4dd31[];
+extern VTBL_ENTRY _ZTV4dd31[];
+extern Class_Descriptor cd_ff31;
+extern VTBL_ENTRY _ZTI4ff31[];
+extern VTBL_ENTRY _ZTV4ff31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff31[];
+static Base_Class bases_gg31[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa31, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb31, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee31, ABISELECT(16,12), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc31, ABISELECT(64,36), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd31, ABISELECT(80,44), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff31, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg31[];
+extern void _ZN4gg313fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg313fooEv,_ZTv0_n20_N4gg313fooEv)();
+extern void ABISELECT(_ZThn16_N4gg313fooEv,_ZThn12_N4gg313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv)();
+extern void ABISELECT(_ZThn32_N4gg313fooEv,_ZThn20_N4gg313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv)();
+extern void ABISELECT(_ZThn48_N4gg313fooEv,_ZThn28_N4gg313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv)();
+extern void ABISELECT(_ZThn64_N4gg313fooEv,_ZThn36_N4gg313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv)();
+extern void ABISELECT(_ZThn80_N4gg313fooEv,_ZThn44_N4gg313fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg31[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg31[0]),
+ (VTBL_ENTRY)&_ZN4gg313fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg313fooEv,_ZTv0_n20_N4gg313fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv),
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg31[];
+extern void _ZN4ff313fooEv();
+static VTBL_ENTRY _tg__ZTV4ff31__4gg31[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff31[0]),
+ (VTBL_ENTRY)&_ZN4ff313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv)();
+extern void ABISELECT(_ZThn64_N4ff313fooEv,_ZThn36_N4ff313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc31__4ff31__4gg31[] = {
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4ff31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv)();
+extern void ABISELECT(_ZThn80_N4ff313fooEv,_ZThn44_N4ff313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd31__4ff31__4gg31[] = {
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4ff31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv),
+};
+extern void _ZN4ee313fooEv();
+static VTBL_ENTRY _tg__ZTV4ee31__4gg31[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee31[0]),
+ (VTBL_ENTRY)&_ZN4ee313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv)();
+extern void ABISELECT(_ZThn16_N4ee313fooEv,_ZThn8_N4ee313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa31__4ee31__4gg31[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv)();
+extern void ABISELECT(_ZThn32_N4ee313fooEv,_ZThn16_N4ee313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb31__4ee31__4gg31[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv),
+};
+static VTT_ENTRY vtt_gg31[] = {
+ {&(_ZTV4gg31[7]), 7,30},
+ {&(_tg__ZTV4ff31__4gg31[4]), 4,5},
+ {&(_tg__ZTV4cc31__4ff31__4gg31[3]), 3,4},
+ {&(_tg__ZTV4dd31__4ff31__4gg31[3]), 3,4},
+ {&(_ZTV4gg31[13]), 13,30},
+ {&(_ZTV4gg31[17]), 17,30},
+ {&(_ZTV4gg31[21]), 21,30},
+ {&(_ZTV4gg31[25]), 25,30},
+ {&(_ZTV4gg31[29]), 29,30},
+ {&(_tg__ZTV4ee31__4gg31[4]), 4,5},
+ {&(_tg__ZTV4aa31__4ee31__4gg31[3]), 3,4},
+ {&(_tg__ZTV4bb31__4ee31__4gg31[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg31[];
+extern VTBL_ENTRY _ZTV4gg31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg31[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee313fooEv,_ZTv0_n12_N4ee313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee313fooEv,_ZThn16_N4ee313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee313fooEv,_ZThn8_N4ee313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff313fooEv,_ZTv0_n12_N4ff313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4ff313fooEv,_ZThn44_N4ff313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4ff313fooEv,_ZThn36_N4ff313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg313fooEv,_ZTv0_n12_N4gg313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg313fooEv,_ZThn44_N4gg313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg313fooEv,_ZThn36_N4gg313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg313fooEv,_ZThn28_N4gg313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg313fooEv,_ZThn20_N4gg313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg313fooEv,_ZTv0_n20_N4gg313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg313fooEv,_ZThn12_N4gg313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg31 = { "gg31", // class name
+ bases_gg31, 6,
+ &(vtc_gg31[0]), // expected_vtbl_contents
+ &(vtt_gg31[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg31),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg31),30, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg31),12, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names79,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa32 {
+ int a;
+ aa32(); // _ZN4aa32C1Ev
+ virtual void foo(); // _ZN4aa323fooEv
+ ~aa32(); // tgen
+};
+//SIG(-1 aa32) C1{ v1 Fi}
+
+
+ aa32 ::aa32(){ note_ctor("aa32", this);}
+void aa32 ::foo(){vfunc_called(this, "_ZN4aa323fooEv");}
+aa32 ::~aa32(){ note_dtor("aa32", this);} // tgen
+
+static void Test_aa32()
+{
+ extern Class_Descriptor cd_aa32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa32, buf);
+ aa32 *dp, &lv = *(dp=new (buf) aa32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa32)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa32.a");
+ test_class_info(&lv, &cd_aa32);
+ dp->~aa32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa32(Test_aa32, "aa32", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa32C1Ev();
+extern void _ZN4aa32D1Ev();
+Name_Map name_map_aa32[] = {
+ NSPAIR(_ZN4aa32C1Ev),
+ NSPAIR(_ZN4aa32D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa32[];
+extern void _ZN4aa323fooEv();
+static VTBL_ENTRY vtc_aa32[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa32[0]),
+ (VTBL_ENTRY)&_ZN4aa323fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa32[];
+extern VTBL_ENTRY _ZTV4aa32[];
+Class_Descriptor cd_aa32 = { "aa32", // class name
+ 0,0,//no base classes
+ &(vtc_aa32[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa32),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa32),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb32 {
+ int b;
+ bb32(); // _ZN4bb32C1Ev
+ virtual void foo(); // _ZN4bb323fooEv
+ ~bb32(); // tgen
+};
+//SIG(-1 bb32) C1{ v1 Fi}
+
+
+ bb32 ::bb32(){ note_ctor("bb32", this);}
+void bb32 ::foo(){vfunc_called(this, "_ZN4bb323fooEv");}
+bb32 ::~bb32(){ note_dtor("bb32", this);} // tgen
+
+static void Test_bb32()
+{
+ extern Class_Descriptor cd_bb32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb32, buf);
+ bb32 *dp, &lv = *(dp=new (buf) bb32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb32)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb32.b");
+ test_class_info(&lv, &cd_bb32);
+ dp->~bb32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb32(Test_bb32, "bb32", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb32C1Ev();
+extern void _ZN4bb32D1Ev();
+Name_Map name_map_bb32[] = {
+ NSPAIR(_ZN4bb32C1Ev),
+ NSPAIR(_ZN4bb32D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb32[];
+extern void _ZN4bb323fooEv();
+static VTBL_ENTRY vtc_bb32[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb32[0]),
+ (VTBL_ENTRY)&_ZN4bb323fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb32[];
+extern VTBL_ENTRY _ZTV4bb32[];
+Class_Descriptor cd_bb32 = { "bb32", // class name
+ 0,0,//no base classes
+ &(vtc_bb32[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb32),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb32),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc32 {
+ int c;
+ cc32(); // _ZN4cc32C1Ev
+ virtual void foo(); // _ZN4cc323fooEv
+ ~cc32(); // tgen
+};
+//SIG(-1 cc32) C1{ v1 Fi}
+
+
+ cc32 ::cc32(){ note_ctor("cc32", this);}
+void cc32 ::foo(){vfunc_called(this, "_ZN4cc323fooEv");}
+cc32 ::~cc32(){ note_dtor("cc32", this);} // tgen
+
+static void Test_cc32()
+{
+ extern Class_Descriptor cd_cc32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc32, buf);
+ cc32 *dp, &lv = *(dp=new (buf) cc32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc32)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc32.c");
+ test_class_info(&lv, &cd_cc32);
+ dp->~cc32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc32(Test_cc32, "cc32", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc32C1Ev();
+extern void _ZN4cc32D1Ev();
+Name_Map name_map_cc32[] = {
+ NSPAIR(_ZN4cc32C1Ev),
+ NSPAIR(_ZN4cc32D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc32[];
+extern void _ZN4cc323fooEv();
+static VTBL_ENTRY vtc_cc32[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc32[0]),
+ (VTBL_ENTRY)&_ZN4cc323fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc32[];
+extern VTBL_ENTRY _ZTV4cc32[];
+Class_Descriptor cd_cc32 = { "cc32", // class name
+ 0,0,//no base classes
+ &(vtc_cc32[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc32),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc32),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd32 {
+ int d;
+ dd32(); // _ZN4dd32C1Ev
+ virtual void foo(); // _ZN4dd323fooEv
+ ~dd32(); // tgen
+};
+//SIG(-1 dd32) C1{ v1 Fi}
+
+
+ dd32 ::dd32(){ note_ctor("dd32", this);}
+void dd32 ::foo(){vfunc_called(this, "_ZN4dd323fooEv");}
+dd32 ::~dd32(){ note_dtor("dd32", this);} // tgen
+
+static void Test_dd32()
+{
+ extern Class_Descriptor cd_dd32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd32, buf);
+ dd32 *dp, &lv = *(dp=new (buf) dd32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd32)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd32.d");
+ test_class_info(&lv, &cd_dd32);
+ dp->~dd32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd32(Test_dd32, "dd32", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd32C1Ev();
+extern void _ZN4dd32D1Ev();
+Name_Map name_map_dd32[] = {
+ NSPAIR(_ZN4dd32C1Ev),
+ NSPAIR(_ZN4dd32D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd32[];
+extern void _ZN4dd323fooEv();
+static VTBL_ENTRY vtc_dd32[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd32[0]),
+ (VTBL_ENTRY)&_ZN4dd323fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd32[];
+extern VTBL_ENTRY _ZTV4dd32[];
+Class_Descriptor cd_dd32 = { "dd32", // class name
+ 0,0,//no base classes
+ &(vtc_dd32[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd32),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd32),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32 : aa32 , bb32 {
+ int e;
+ ee32(); // _ZN4ee32C1Ev
+ virtual void foo(); // _ZN4ee323fooEv
+ ~ee32(); // tgen
+};
+//SIG(-1 ee32) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee32 ::ee32(){ note_ctor("ee32", this);}
+void ee32 ::foo(){vfunc_called(this, "_ZN4ee323fooEv");}
+ee32 ::~ee32(){ note_dtor("ee32", this);} // tgen
+
+static void Test_ee32()
+{
+ extern Class_Descriptor cd_ee32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee32, buf);
+ ee32 *dp, &lv = *(dp=new (buf) ee32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32)");
+ check_base_class_offset(lv, (aa32*), 0, "ee32");
+ check_base_class_offset(lv, (bb32*), ABISELECT(16,8), "ee32");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee32.e");
+ test_class_info(&lv, &cd_ee32);
+ dp->~ee32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32(Test_ee32, "ee32", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee32C1Ev();
+extern void _ZN4ee32D1Ev();
+Name_Map name_map_ee32[] = {
+ NSPAIR(_ZN4ee32C1Ev),
+ NSPAIR(_ZN4ee32D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa32;
+extern VTBL_ENTRY _ZTI4aa32[];
+extern VTBL_ENTRY _ZTV4aa32[];
+extern Class_Descriptor cd_bb32;
+extern VTBL_ENTRY _ZTI4bb32[];
+extern VTBL_ENTRY _ZTV4bb32[];
+static Base_Class bases_ee32[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa32, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb32, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee32[];
+extern void _ZN4ee323fooEv();
+extern void ABISELECT(_ZThn16_N4ee323fooEv,_ZThn8_N4ee323fooEv)();
+static VTBL_ENTRY vtc_ee32[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee32[0]),
+ (VTBL_ENTRY)&_ZN4ee323fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee32[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee323fooEv,_ZThn8_N4ee323fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee32[];
+extern VTBL_ENTRY _ZTV4ee32[];
+Class_Descriptor cd_ee32 = { "ee32", // class name
+ bases_ee32, 2,
+ &(vtc_ee32[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee32),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee32),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff32 : cc32 , dd32 {
+ int f;
+ ff32(); // _ZN4ff32C1Ev
+ virtual void foo(); // _ZN4ff323fooEv
+ ~ff32(); // tgen
+};
+//SIG(-1 ff32) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff32 ::ff32(){ note_ctor("ff32", this);}
+void ff32 ::foo(){vfunc_called(this, "_ZN4ff323fooEv");}
+ff32 ::~ff32(){ note_dtor("ff32", this);} // tgen
+
+static void Test_ff32()
+{
+ extern Class_Descriptor cd_ff32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff32, buf);
+ ff32 *dp, &lv = *(dp=new (buf) ff32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff32)");
+ check_base_class_offset(lv, (cc32*), 0, "ff32");
+ check_base_class_offset(lv, (dd32*), ABISELECT(16,8), "ff32");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff32.f");
+ test_class_info(&lv, &cd_ff32);
+ dp->~ff32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff32(Test_ff32, "ff32", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff32C1Ev();
+extern void _ZN4ff32D1Ev();
+Name_Map name_map_ff32[] = {
+ NSPAIR(_ZN4ff32C1Ev),
+ NSPAIR(_ZN4ff32D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc32;
+extern VTBL_ENTRY _ZTI4cc32[];
+extern VTBL_ENTRY _ZTV4cc32[];
+extern Class_Descriptor cd_dd32;
+extern VTBL_ENTRY _ZTI4dd32[];
+extern VTBL_ENTRY _ZTV4dd32[];
+static Base_Class bases_ff32[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc32, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd32, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff32[];
+extern void _ZN4ff323fooEv();
+extern void ABISELECT(_ZThn16_N4ff323fooEv,_ZThn8_N4ff323fooEv)();
+static VTBL_ENTRY vtc_ff32[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff32[0]),
+ (VTBL_ENTRY)&_ZN4ff323fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff32[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff323fooEv,_ZThn8_N4ff323fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff32[];
+extern VTBL_ENTRY _ZTV4ff32[];
+Class_Descriptor cd_ff32 = { "ff32", // class name
+ bases_ff32, 2,
+ &(vtc_ff32[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff32),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff32),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg32 : ee32 , virtual ff32 {
+ int g;
+ gg32(const ABISELECT(__tsi64,int) *const *); // _ZN4gg32C2Ev
+ virtual void foo(); // _ZN4gg323fooEv
+ ~gg32(); // tgen
+ gg32(); // tgen
+};
+//SIG(1 gg32) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg32 ::gg32(const ABISELECT(__tsi64,int) *const *){}
+void gg32 ::foo(){vfunc_called(this, "_ZN4gg323fooEv");}
+gg32 ::~gg32(){ note_dtor("gg32", this);} // tgen
+gg32 ::gg32(){ note_ctor("gg32", this);} // tgen
+
+static void Test_gg32()
+{
+ extern Class_Descriptor cd_gg32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg32, buf);
+ gg32 *dp, &lv = *(dp=new (buf) gg32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg32)");
+ check_base_class_offset(lv, (aa32*)(ee32*), 0, "gg32");
+ check_base_class_offset(lv, (bb32*)(ee32*), ABISELECT(16,8), "gg32");
+ check_base_class_offset(lv, (ee32*), 0, "gg32");
+ check_base_class_offset(lv, (cc32*)(ff32*), ABISELECT(40,24), "gg32");
+ check_base_class_offset(lv, (dd32*)(ff32*), ABISELECT(56,32), "gg32");
+ check_base_class_offset(lv, (ff32*), ABISELECT(40,24), "gg32");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg32.g");
+ test_class_info(&lv, &cd_gg32);
+ dp->~gg32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg32(Test_gg32, "gg32", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg32C1Ev();
+extern void _ZN4gg32D1Ev();
+Name_Map name_map_gg32[] = {
+ NSPAIR(_ZN4gg32C1Ev),
+ NSPAIR(_ZN4gg32D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa32;
+extern VTBL_ENTRY _ZTI4aa32[];
+extern VTBL_ENTRY _ZTV4aa32[];
+extern Class_Descriptor cd_bb32;
+extern VTBL_ENTRY _ZTI4bb32[];
+extern VTBL_ENTRY _ZTV4bb32[];
+extern Class_Descriptor cd_ee32;
+extern VTBL_ENTRY _ZTI4ee32[];
+extern VTBL_ENTRY _ZTV4ee32[];
+extern Class_Descriptor cd_cc32;
+extern VTBL_ENTRY _ZTI4cc32[];
+extern VTBL_ENTRY _ZTV4cc32[];
+extern Class_Descriptor cd_dd32;
+extern VTBL_ENTRY _ZTI4dd32[];
+extern VTBL_ENTRY _ZTV4dd32[];
+extern Class_Descriptor cd_ff32;
+extern VTBL_ENTRY _ZTI4ff32[];
+extern VTBL_ENTRY _ZTV4ff32[];
+static Base_Class bases_gg32[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa32, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb32, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee32, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc32, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd32, ABISELECT(56,32), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff32, ABISELECT(40,24), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg32[];
+extern void _ZN4gg323fooEv();
+extern void ABISELECT(_ZThn16_N4gg323fooEv,_ZThn8_N4gg323fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg323fooEv,_ZTv0_n12_N4gg323fooEv)();
+extern void ABISELECT(_ZThn40_N4gg323fooEv,_ZThn24_N4gg323fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg323fooEv,_ZTvn8_n12_N4gg323fooEv)();
+static VTBL_ENTRY vtc_gg32[] = {
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg32[0]),
+ (VTBL_ENTRY)&_ZN4gg323fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg32[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg323fooEv,_ZThn8_N4gg323fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg32[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg323fooEv,_ZTv0_n12_N4gg323fooEv),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg32[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg323fooEv,_ZTvn8_n12_N4gg323fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg32[];
+static VTT_ENTRY vtt_gg32[] = {
+ {&(_ZTV4gg32[3]), 3,14},
+ {&(_ZTV4gg32[10]), 10,14},
+ {&(_ZTV4gg32[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI4gg32[];
+extern VTBL_ENTRY _ZTV4gg32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg32[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg323fooEv,_ZTv0_n12_N4gg323fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg323fooEv,_ZThn24_N4gg323fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg32 = { "gg32", // class name
+ bases_gg32, 6,
+ &(vtc_gg32[0]), // expected_vtbl_contents
+ &(vtt_gg32[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg32),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg32),14, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg32),3, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names80,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa33 {
+ int a;
+ aa33(); // _ZN4aa33C1Ev
+ virtual void foo(); // _ZN4aa333fooEv
+ ~aa33(); // tgen
+};
+//SIG(-1 aa33) C1{ v1 Fi}
+
+
+ aa33 ::aa33(){ note_ctor("aa33", this);}
+void aa33 ::foo(){vfunc_called(this, "_ZN4aa333fooEv");}
+aa33 ::~aa33(){ note_dtor("aa33", this);} // tgen
+
+static void Test_aa33()
+{
+ extern Class_Descriptor cd_aa33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa33, buf);
+ aa33 *dp, &lv = *(dp=new (buf) aa33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa33)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa33.a");
+ test_class_info(&lv, &cd_aa33);
+ dp->~aa33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa33(Test_aa33, "aa33", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa33C1Ev();
+extern void _ZN4aa33D1Ev();
+Name_Map name_map_aa33[] = {
+ NSPAIR(_ZN4aa33C1Ev),
+ NSPAIR(_ZN4aa33D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa33[];
+extern void _ZN4aa333fooEv();
+static VTBL_ENTRY vtc_aa33[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa33[0]),
+ (VTBL_ENTRY)&_ZN4aa333fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa33[];
+extern VTBL_ENTRY _ZTV4aa33[];
+Class_Descriptor cd_aa33 = { "aa33", // class name
+ 0,0,//no base classes
+ &(vtc_aa33[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa33),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa33),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb33 {
+ int b;
+ bb33(); // _ZN4bb33C1Ev
+ virtual void foo(); // _ZN4bb333fooEv
+ ~bb33(); // tgen
+};
+//SIG(-1 bb33) C1{ v1 Fi}
+
+
+ bb33 ::bb33(){ note_ctor("bb33", this);}
+void bb33 ::foo(){vfunc_called(this, "_ZN4bb333fooEv");}
+bb33 ::~bb33(){ note_dtor("bb33", this);} // tgen
+
+static void Test_bb33()
+{
+ extern Class_Descriptor cd_bb33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb33, buf);
+ bb33 *dp, &lv = *(dp=new (buf) bb33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb33)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb33.b");
+ test_class_info(&lv, &cd_bb33);
+ dp->~bb33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb33(Test_bb33, "bb33", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb33C1Ev();
+extern void _ZN4bb33D1Ev();
+Name_Map name_map_bb33[] = {
+ NSPAIR(_ZN4bb33C1Ev),
+ NSPAIR(_ZN4bb33D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb33[];
+extern void _ZN4bb333fooEv();
+static VTBL_ENTRY vtc_bb33[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb33[0]),
+ (VTBL_ENTRY)&_ZN4bb333fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb33[];
+extern VTBL_ENTRY _ZTV4bb33[];
+Class_Descriptor cd_bb33 = { "bb33", // class name
+ 0,0,//no base classes
+ &(vtc_bb33[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb33),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb33),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc33 {
+ int c;
+ cc33(); // _ZN4cc33C1Ev
+ virtual void foo(); // _ZN4cc333fooEv
+ ~cc33(); // tgen
+};
+//SIG(-1 cc33) C1{ v1 Fi}
+
+
+ cc33 ::cc33(){ note_ctor("cc33", this);}
+void cc33 ::foo(){vfunc_called(this, "_ZN4cc333fooEv");}
+cc33 ::~cc33(){ note_dtor("cc33", this);} // tgen
+
+static void Test_cc33()
+{
+ extern Class_Descriptor cd_cc33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc33, buf);
+ cc33 *dp, &lv = *(dp=new (buf) cc33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc33)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc33.c");
+ test_class_info(&lv, &cd_cc33);
+ dp->~cc33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc33(Test_cc33, "cc33", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc33C1Ev();
+extern void _ZN4cc33D1Ev();
+Name_Map name_map_cc33[] = {
+ NSPAIR(_ZN4cc33C1Ev),
+ NSPAIR(_ZN4cc33D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc33[];
+extern void _ZN4cc333fooEv();
+static VTBL_ENTRY vtc_cc33[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc33[0]),
+ (VTBL_ENTRY)&_ZN4cc333fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc33[];
+extern VTBL_ENTRY _ZTV4cc33[];
+Class_Descriptor cd_cc33 = { "cc33", // class name
+ 0,0,//no base classes
+ &(vtc_cc33[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc33),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc33),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd33 {
+ int d;
+ dd33(); // _ZN4dd33C1Ev
+ virtual void foo(); // _ZN4dd333fooEv
+ ~dd33(); // tgen
+};
+//SIG(-1 dd33) C1{ v1 Fi}
+
+
+ dd33 ::dd33(){ note_ctor("dd33", this);}
+void dd33 ::foo(){vfunc_called(this, "_ZN4dd333fooEv");}
+dd33 ::~dd33(){ note_dtor("dd33", this);} // tgen
+
+static void Test_dd33()
+{
+ extern Class_Descriptor cd_dd33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd33, buf);
+ dd33 *dp, &lv = *(dp=new (buf) dd33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd33)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd33.d");
+ test_class_info(&lv, &cd_dd33);
+ dp->~dd33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd33(Test_dd33, "dd33", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd33C1Ev();
+extern void _ZN4dd33D1Ev();
+Name_Map name_map_dd33[] = {
+ NSPAIR(_ZN4dd33C1Ev),
+ NSPAIR(_ZN4dd33D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd33[];
+extern void _ZN4dd333fooEv();
+static VTBL_ENTRY vtc_dd33[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd33[0]),
+ (VTBL_ENTRY)&_ZN4dd333fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd33[];
+extern VTBL_ENTRY _ZTV4dd33[];
+Class_Descriptor cd_dd33 = { "dd33", // class name
+ 0,0,//no base classes
+ &(vtc_dd33[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd33),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd33),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33 : virtual aa33 , bb33 {
+ int e;
+ ee33(const ABISELECT(__tsi64,int) *const *); // _ZN4ee33C2Ev
+ virtual void foo(); // _ZN4ee333fooEv
+ ~ee33(); // tgen
+ ee33(); // tgen
+};
+//SIG(-1 ee33) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee33 ::ee33(const ABISELECT(__tsi64,int) *const *){}
+void ee33 ::foo(){vfunc_called(this, "_ZN4ee333fooEv");}
+ee33 ::~ee33(){ note_dtor("ee33", this);} // tgen
+ee33 ::ee33(){ note_ctor("ee33", this);} // tgen
+
+static void Test_ee33()
+{
+ extern Class_Descriptor cd_ee33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee33, buf);
+ ee33 *dp, &lv = *(dp=new (buf) ee33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33)");
+ check_base_class_offset(lv, (aa33*), ABISELECT(16,12), "ee33");
+ check_base_class_offset(lv, (bb33*), 0, "ee33");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee33.e");
+ test_class_info(&lv, &cd_ee33);
+ dp->~ee33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33(Test_ee33, "ee33", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee33C1Ev();
+extern void _ZN4ee33D1Ev();
+Name_Map name_map_ee33[] = {
+ NSPAIR(_ZN4ee33C1Ev),
+ NSPAIR(_ZN4ee33D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa33;
+extern VTBL_ENTRY _ZTI4aa33[];
+extern VTBL_ENTRY _ZTV4aa33[];
+extern Class_Descriptor cd_bb33;
+extern VTBL_ENTRY _ZTI4bb33[];
+extern VTBL_ENTRY _ZTV4bb33[];
+static Base_Class bases_ee33[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa33, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb33, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee33[];
+extern void _ZN4ee333fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee333fooEv,_ZTv0_n12_N4ee333fooEv)();
+extern void ABISELECT(_ZThn16_N4ee333fooEv,_ZThn12_N4ee333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee33[0]),
+ (VTBL_ENTRY)&_ZN4ee333fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee333fooEv,_ZTv0_n12_N4ee333fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee33[];
+static VTT_ENTRY vtt_ee33[] = {
+ {&(_ZTV4ee33[3]), 3,8},
+ {&(_ZTV4ee33[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee33[];
+extern VTBL_ENTRY _ZTV4ee33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee33[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee333fooEv,_ZTv0_n12_N4ee333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee333fooEv,_ZThn12_N4ee333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33 = { "ee33", // class name
+ bases_ee33, 2,
+ &(vtc_ee33[0]), // expected_vtbl_contents
+ &(vtt_ee33[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee33),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee33),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee33),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names81,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff33 : cc33 , dd33 {
+ int f;
+ ff33(); // _ZN4ff33C1Ev
+ virtual void foo(); // _ZN4ff333fooEv
+ ~ff33(); // tgen
+};
+//SIG(-1 ff33) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff33 ::ff33(){ note_ctor("ff33", this);}
+void ff33 ::foo(){vfunc_called(this, "_ZN4ff333fooEv");}
+ff33 ::~ff33(){ note_dtor("ff33", this);} // tgen
+
+static void Test_ff33()
+{
+ extern Class_Descriptor cd_ff33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff33, buf);
+ ff33 *dp, &lv = *(dp=new (buf) ff33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff33)");
+ check_base_class_offset(lv, (cc33*), 0, "ff33");
+ check_base_class_offset(lv, (dd33*), ABISELECT(16,8), "ff33");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff33.f");
+ test_class_info(&lv, &cd_ff33);
+ dp->~ff33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff33(Test_ff33, "ff33", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff33C1Ev();
+extern void _ZN4ff33D1Ev();
+Name_Map name_map_ff33[] = {
+ NSPAIR(_ZN4ff33C1Ev),
+ NSPAIR(_ZN4ff33D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc33;
+extern VTBL_ENTRY _ZTI4cc33[];
+extern VTBL_ENTRY _ZTV4cc33[];
+extern Class_Descriptor cd_dd33;
+extern VTBL_ENTRY _ZTI4dd33[];
+extern VTBL_ENTRY _ZTV4dd33[];
+static Base_Class bases_ff33[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc33, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd33, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff33[];
+extern void _ZN4ff333fooEv();
+extern void ABISELECT(_ZThn16_N4ff333fooEv,_ZThn8_N4ff333fooEv)();
+static VTBL_ENTRY vtc_ff33[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff33[0]),
+ (VTBL_ENTRY)&_ZN4ff333fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff333fooEv,_ZThn8_N4ff333fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff33[];
+extern VTBL_ENTRY _ZTV4ff33[];
+Class_Descriptor cd_ff33 = { "ff33", // class name
+ bases_ff33, 2,
+ &(vtc_ff33[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff33),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff33),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg33 : ee33 , virtual ff33 {
+ int g;
+ gg33(const ABISELECT(__tsi64,int) *const *); // _ZN4gg33C2Ev
+ virtual void foo(); // _ZN4gg333fooEv
+ ~gg33(); // tgen
+ gg33(); // tgen
+};
+//SIG(1 gg33) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg33 ::gg33(const ABISELECT(__tsi64,int) *const *){}
+void gg33 ::foo(){vfunc_called(this, "_ZN4gg333fooEv");}
+gg33 ::~gg33(){ note_dtor("gg33", this);} // tgen
+gg33 ::gg33(){ note_ctor("gg33", this);} // tgen
+
+static void Test_gg33()
+{
+ extern Class_Descriptor cd_gg33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg33, buf);
+ gg33 *dp, &lv = *(dp=new (buf) gg33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg33)");
+ check_base_class_offset(lv, (aa33*)(ee33*), ABISELECT(24,16), "gg33");
+ check_base_class_offset(lv, (bb33*)(ee33*), 0, "gg33");
+ check_base_class_offset(lv, (ee33*), 0, "gg33");
+ check_base_class_offset(lv, (cc33*)(ff33*), ABISELECT(40,24), "gg33");
+ check_base_class_offset(lv, (dd33*)(ff33*), ABISELECT(56,32), "gg33");
+ check_base_class_offset(lv, (ff33*), ABISELECT(40,24), "gg33");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg33.g");
+ test_class_info(&lv, &cd_gg33);
+ dp->~gg33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg33(Test_gg33, "gg33", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg33C1Ev();
+extern void _ZN4gg33D1Ev();
+Name_Map name_map_gg33[] = {
+ NSPAIR(_ZN4gg33C1Ev),
+ NSPAIR(_ZN4gg33D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa33;
+extern VTBL_ENTRY _ZTI4aa33[];
+extern VTBL_ENTRY _ZTV4aa33[];
+extern Class_Descriptor cd_bb33;
+extern VTBL_ENTRY _ZTI4bb33[];
+extern VTBL_ENTRY _ZTV4bb33[];
+extern Class_Descriptor cd_ee33;
+extern VTBL_ENTRY _ZTI4ee33[];
+extern VTBL_ENTRY _ZTV4ee33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee33[];
+extern Class_Descriptor cd_cc33;
+extern VTBL_ENTRY _ZTI4cc33[];
+extern VTBL_ENTRY _ZTV4cc33[];
+extern Class_Descriptor cd_dd33;
+extern VTBL_ENTRY _ZTI4dd33[];
+extern VTBL_ENTRY _ZTV4dd33[];
+extern Class_Descriptor cd_ff33;
+extern VTBL_ENTRY _ZTI4ff33[];
+extern VTBL_ENTRY _ZTV4ff33[];
+static Base_Class bases_gg33[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa33, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb33, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee33, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc33, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd33, ABISELECT(56,32), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff33, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg33[];
+extern void _ZN4gg333fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg333fooEv,_ZTv0_n12_N4gg333fooEv)();
+extern void ABISELECT(_ZThn24_N4gg333fooEv,_ZThn16_N4gg333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg333fooEv,_ZTv0_n12_N4gg333fooEv)();
+extern void ABISELECT(_ZThn40_N4gg333fooEv,_ZThn24_N4gg333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg333fooEv,_ZTvn8_n12_N4gg333fooEv)();
+static VTBL_ENTRY vtc_gg33[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg33[0]),
+ (VTBL_ENTRY)&_ZN4gg333fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg333fooEv,_ZTv0_n12_N4gg333fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg333fooEv,_ZTv0_n12_N4gg333fooEv),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg333fooEv,_ZTvn8_n12_N4gg333fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg33[];
+extern void _ZN4ee333fooEv();
+static VTBL_ENTRY _tg__ZTV4ee33__4gg33[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee33[0]),
+ (VTBL_ENTRY)&_ZN4ee333fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee333fooEv,_ZTv0_n12_N4ee333fooEv)();
+extern void ABISELECT(_ZThn24_N4ee333fooEv,_ZThn16_N4ee333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa33__4ee33__4gg33[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee333fooEv,_ZTv0_n12_N4ee333fooEv),
+};
+static VTT_ENTRY vtt_gg33[] = {
+ {&(_ZTV4gg33[4]), 4,16},
+ {&(_tg__ZTV4ee33__4gg33[3]), 3,4},
+ {&(_tg__ZTV4aa33__4ee33__4gg33[3]), 3,4},
+ {&(_ZTV4gg33[8]), 8,16},
+ {&(_ZTV4gg33[12]), 12,16},
+ {&(_ZTV4gg33[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI4gg33[];
+extern VTBL_ENTRY _ZTV4gg33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg33[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee333fooEv,_ZTv0_n12_N4ee333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee333fooEv,_ZThn16_N4ee333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg333fooEv,_ZTv0_n12_N4gg333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg333fooEv,_ZThn24_N4gg333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg333fooEv,_ZThn16_N4gg333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg33 = { "gg33", // class name
+ bases_gg33, 6,
+ &(vtc_gg33[0]), // expected_vtbl_contents
+ &(vtt_gg33[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg33),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg33),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg33),6, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names82,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa34 {
+ int a;
+ aa34(); // _ZN4aa34C1Ev
+ virtual void foo(); // _ZN4aa343fooEv
+ ~aa34(); // tgen
+};
+//SIG(-1 aa34) C1{ v1 Fi}
+
+
+ aa34 ::aa34(){ note_ctor("aa34", this);}
+void aa34 ::foo(){vfunc_called(this, "_ZN4aa343fooEv");}
+aa34 ::~aa34(){ note_dtor("aa34", this);} // tgen
+
+static void Test_aa34()
+{
+ extern Class_Descriptor cd_aa34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa34, buf);
+ aa34 *dp, &lv = *(dp=new (buf) aa34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa34)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa34.a");
+ test_class_info(&lv, &cd_aa34);
+ dp->~aa34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa34(Test_aa34, "aa34", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa34C1Ev();
+extern void _ZN4aa34D1Ev();
+Name_Map name_map_aa34[] = {
+ NSPAIR(_ZN4aa34C1Ev),
+ NSPAIR(_ZN4aa34D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa34[];
+extern void _ZN4aa343fooEv();
+static VTBL_ENTRY vtc_aa34[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa34[0]),
+ (VTBL_ENTRY)&_ZN4aa343fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa34[];
+extern VTBL_ENTRY _ZTV4aa34[];
+Class_Descriptor cd_aa34 = { "aa34", // class name
+ 0,0,//no base classes
+ &(vtc_aa34[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa34),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa34),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb34 {
+ int b;
+ bb34(); // _ZN4bb34C1Ev
+ virtual void foo(); // _ZN4bb343fooEv
+ ~bb34(); // tgen
+};
+//SIG(-1 bb34) C1{ v1 Fi}
+
+
+ bb34 ::bb34(){ note_ctor("bb34", this);}
+void bb34 ::foo(){vfunc_called(this, "_ZN4bb343fooEv");}
+bb34 ::~bb34(){ note_dtor("bb34", this);} // tgen
+
+static void Test_bb34()
+{
+ extern Class_Descriptor cd_bb34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb34, buf);
+ bb34 *dp, &lv = *(dp=new (buf) bb34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb34)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb34.b");
+ test_class_info(&lv, &cd_bb34);
+ dp->~bb34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb34(Test_bb34, "bb34", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb34C1Ev();
+extern void _ZN4bb34D1Ev();
+Name_Map name_map_bb34[] = {
+ NSPAIR(_ZN4bb34C1Ev),
+ NSPAIR(_ZN4bb34D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb34[];
+extern void _ZN4bb343fooEv();
+static VTBL_ENTRY vtc_bb34[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb34[0]),
+ (VTBL_ENTRY)&_ZN4bb343fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb34[];
+extern VTBL_ENTRY _ZTV4bb34[];
+Class_Descriptor cd_bb34 = { "bb34", // class name
+ 0,0,//no base classes
+ &(vtc_bb34[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb34),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb34),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc34 {
+ int c;
+ cc34(); // _ZN4cc34C1Ev
+ virtual void foo(); // _ZN4cc343fooEv
+ ~cc34(); // tgen
+};
+//SIG(-1 cc34) C1{ v1 Fi}
+
+
+ cc34 ::cc34(){ note_ctor("cc34", this);}
+void cc34 ::foo(){vfunc_called(this, "_ZN4cc343fooEv");}
+cc34 ::~cc34(){ note_dtor("cc34", this);} // tgen
+
+static void Test_cc34()
+{
+ extern Class_Descriptor cd_cc34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc34, buf);
+ cc34 *dp, &lv = *(dp=new (buf) cc34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc34)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc34.c");
+ test_class_info(&lv, &cd_cc34);
+ dp->~cc34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc34(Test_cc34, "cc34", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc34C1Ev();
+extern void _ZN4cc34D1Ev();
+Name_Map name_map_cc34[] = {
+ NSPAIR(_ZN4cc34C1Ev),
+ NSPAIR(_ZN4cc34D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc34[];
+extern void _ZN4cc343fooEv();
+static VTBL_ENTRY vtc_cc34[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc34[0]),
+ (VTBL_ENTRY)&_ZN4cc343fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc34[];
+extern VTBL_ENTRY _ZTV4cc34[];
+Class_Descriptor cd_cc34 = { "cc34", // class name
+ 0,0,//no base classes
+ &(vtc_cc34[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc34),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc34),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd34 {
+ int d;
+ dd34(); // _ZN4dd34C1Ev
+ virtual void foo(); // _ZN4dd343fooEv
+ ~dd34(); // tgen
+};
+//SIG(-1 dd34) C1{ v1 Fi}
+
+
+ dd34 ::dd34(){ note_ctor("dd34", this);}
+void dd34 ::foo(){vfunc_called(this, "_ZN4dd343fooEv");}
+dd34 ::~dd34(){ note_dtor("dd34", this);} // tgen
+
+static void Test_dd34()
+{
+ extern Class_Descriptor cd_dd34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd34, buf);
+ dd34 *dp, &lv = *(dp=new (buf) dd34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd34)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd34.d");
+ test_class_info(&lv, &cd_dd34);
+ dp->~dd34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd34(Test_dd34, "dd34", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd34C1Ev();
+extern void _ZN4dd34D1Ev();
+Name_Map name_map_dd34[] = {
+ NSPAIR(_ZN4dd34C1Ev),
+ NSPAIR(_ZN4dd34D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd34[];
+extern void _ZN4dd343fooEv();
+static VTBL_ENTRY vtc_dd34[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd34[0]),
+ (VTBL_ENTRY)&_ZN4dd343fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd34[];
+extern VTBL_ENTRY _ZTV4dd34[];
+Class_Descriptor cd_dd34 = { "dd34", // class name
+ 0,0,//no base classes
+ &(vtc_dd34[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd34),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd34),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34 : aa34 , virtual bb34 {
+ int e;
+ ee34(const ABISELECT(__tsi64,int) *const *); // _ZN4ee34C2Ev
+ virtual void foo(); // _ZN4ee343fooEv
+ ~ee34(); // tgen
+ ee34(); // tgen
+};
+//SIG(-1 ee34) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee34 ::ee34(const ABISELECT(__tsi64,int) *const *){}
+void ee34 ::foo(){vfunc_called(this, "_ZN4ee343fooEv");}
+ee34 ::~ee34(){ note_dtor("ee34", this);} // tgen
+ee34 ::ee34(){ note_ctor("ee34", this);} // tgen
+
+static void Test_ee34()
+{
+ extern Class_Descriptor cd_ee34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee34, buf);
+ ee34 *dp, &lv = *(dp=new (buf) ee34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34)");
+ check_base_class_offset(lv, (aa34*), 0, "ee34");
+ check_base_class_offset(lv, (bb34*), ABISELECT(16,12), "ee34");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee34.e");
+ test_class_info(&lv, &cd_ee34);
+ dp->~ee34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34(Test_ee34, "ee34", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee34C1Ev();
+extern void _ZN4ee34D1Ev();
+Name_Map name_map_ee34[] = {
+ NSPAIR(_ZN4ee34C1Ev),
+ NSPAIR(_ZN4ee34D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa34;
+extern VTBL_ENTRY _ZTI4aa34[];
+extern VTBL_ENTRY _ZTV4aa34[];
+extern Class_Descriptor cd_bb34;
+extern VTBL_ENTRY _ZTI4bb34[];
+extern VTBL_ENTRY _ZTV4bb34[];
+static Base_Class bases_ee34[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa34, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb34, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee34[];
+extern void _ZN4ee343fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee343fooEv,_ZTv0_n12_N4ee343fooEv)();
+extern void ABISELECT(_ZThn16_N4ee343fooEv,_ZThn12_N4ee343fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee34[0]),
+ (VTBL_ENTRY)&_ZN4ee343fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee34[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee343fooEv,_ZTv0_n12_N4ee343fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee34[];
+static VTT_ENTRY vtt_ee34[] = {
+ {&(_ZTV4ee34[3]), 3,8},
+ {&(_ZTV4ee34[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee34[];
+extern VTBL_ENTRY _ZTV4ee34[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee34[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee343fooEv,_ZTv0_n12_N4ee343fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee343fooEv,_ZThn12_N4ee343fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34 = { "ee34", // class name
+ bases_ee34, 2,
+ &(vtc_ee34[0]), // expected_vtbl_contents
+ &(vtt_ee34[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee34),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee34),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee34),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names83,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff34 : cc34 , dd34 {
+ int f;
+ ff34(); // _ZN4ff34C1Ev
+ virtual void foo(); // _ZN4ff343fooEv
+ ~ff34(); // tgen
+};
+//SIG(-1 ff34) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff34 ::ff34(){ note_ctor("ff34", this);}
+void ff34 ::foo(){vfunc_called(this, "_ZN4ff343fooEv");}
+ff34 ::~ff34(){ note_dtor("ff34", this);} // tgen
+
+static void Test_ff34()
+{
+ extern Class_Descriptor cd_ff34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff34, buf);
+ ff34 *dp, &lv = *(dp=new (buf) ff34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff34)");
+ check_base_class_offset(lv, (cc34*), 0, "ff34");
+ check_base_class_offset(lv, (dd34*), ABISELECT(16,8), "ff34");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff34.f");
+ test_class_info(&lv, &cd_ff34);
+ dp->~ff34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff34(Test_ff34, "ff34", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff34C1Ev();
+extern void _ZN4ff34D1Ev();
+Name_Map name_map_ff34[] = {
+ NSPAIR(_ZN4ff34C1Ev),
+ NSPAIR(_ZN4ff34D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc34;
+extern VTBL_ENTRY _ZTI4cc34[];
+extern VTBL_ENTRY _ZTV4cc34[];
+extern Class_Descriptor cd_dd34;
+extern VTBL_ENTRY _ZTI4dd34[];
+extern VTBL_ENTRY _ZTV4dd34[];
+static Base_Class bases_ff34[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc34, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd34, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff34[];
+extern void _ZN4ff343fooEv();
+extern void ABISELECT(_ZThn16_N4ff343fooEv,_ZThn8_N4ff343fooEv)();
+static VTBL_ENTRY vtc_ff34[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff34[0]),
+ (VTBL_ENTRY)&_ZN4ff343fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff34[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff343fooEv,_ZThn8_N4ff343fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff34[];
+extern VTBL_ENTRY _ZTV4ff34[];
+Class_Descriptor cd_ff34 = { "ff34", // class name
+ bases_ff34, 2,
+ &(vtc_ff34[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff34),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff34),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg34 : ee34 , virtual ff34 {
+ int g;
+ gg34(const ABISELECT(__tsi64,int) *const *); // _ZN4gg34C2Ev
+ virtual void foo(); // _ZN4gg343fooEv
+ ~gg34(); // tgen
+ gg34(); // tgen
+};
+//SIG(1 gg34) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg34 ::gg34(const ABISELECT(__tsi64,int) *const *){}
+void gg34 ::foo(){vfunc_called(this, "_ZN4gg343fooEv");}
+gg34 ::~gg34(){ note_dtor("gg34", this);} // tgen
+gg34 ::gg34(){ note_ctor("gg34", this);} // tgen
+
+static void Test_gg34()
+{
+ extern Class_Descriptor cd_gg34;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg34, buf);
+ gg34 *dp, &lv = *(dp=new (buf) gg34());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg34)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg34)");
+ check_base_class_offset(lv, (aa34*)(ee34*), 0, "gg34");
+ check_base_class_offset(lv, (bb34*)(ee34*), ABISELECT(24,16), "gg34");
+ check_base_class_offset(lv, (ee34*), 0, "gg34");
+ check_base_class_offset(lv, (cc34*)(ff34*), ABISELECT(40,24), "gg34");
+ check_base_class_offset(lv, (dd34*)(ff34*), ABISELECT(56,32), "gg34");
+ check_base_class_offset(lv, (ff34*), ABISELECT(40,24), "gg34");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg34.g");
+ test_class_info(&lv, &cd_gg34);
+ dp->~gg34();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg34(Test_gg34, "gg34", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg34C1Ev();
+extern void _ZN4gg34D1Ev();
+Name_Map name_map_gg34[] = {
+ NSPAIR(_ZN4gg34C1Ev),
+ NSPAIR(_ZN4gg34D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa34;
+extern VTBL_ENTRY _ZTI4aa34[];
+extern VTBL_ENTRY _ZTV4aa34[];
+extern Class_Descriptor cd_bb34;
+extern VTBL_ENTRY _ZTI4bb34[];
+extern VTBL_ENTRY _ZTV4bb34[];
+extern Class_Descriptor cd_ee34;
+extern VTBL_ENTRY _ZTI4ee34[];
+extern VTBL_ENTRY _ZTV4ee34[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee34[];
+extern Class_Descriptor cd_cc34;
+extern VTBL_ENTRY _ZTI4cc34[];
+extern VTBL_ENTRY _ZTV4cc34[];
+extern Class_Descriptor cd_dd34;
+extern VTBL_ENTRY _ZTI4dd34[];
+extern VTBL_ENTRY _ZTV4dd34[];
+extern Class_Descriptor cd_ff34;
+extern VTBL_ENTRY _ZTI4ff34[];
+extern VTBL_ENTRY _ZTV4ff34[];
+static Base_Class bases_gg34[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa34, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb34, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee34, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc34, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd34, ABISELECT(56,32), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff34, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg34[];
+extern void _ZN4gg343fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg343fooEv,_ZTv0_n12_N4gg343fooEv)();
+extern void ABISELECT(_ZThn24_N4gg343fooEv,_ZThn16_N4gg343fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg343fooEv,_ZTv0_n12_N4gg343fooEv)();
+extern void ABISELECT(_ZThn40_N4gg343fooEv,_ZThn24_N4gg343fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg343fooEv,_ZTvn8_n12_N4gg343fooEv)();
+static VTBL_ENTRY vtc_gg34[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg34[0]),
+ (VTBL_ENTRY)&_ZN4gg343fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg34[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg343fooEv,_ZTv0_n12_N4gg343fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg34[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg343fooEv,_ZTv0_n12_N4gg343fooEv),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg34[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg343fooEv,_ZTvn8_n12_N4gg343fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg34[];
+extern void _ZN4ee343fooEv();
+static VTBL_ENTRY _tg__ZTV4ee34__4gg34[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee34[0]),
+ (VTBL_ENTRY)&_ZN4ee343fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee343fooEv,_ZTv0_n12_N4ee343fooEv)();
+extern void ABISELECT(_ZThn24_N4ee343fooEv,_ZThn16_N4ee343fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb34__4ee34__4gg34[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee34[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee343fooEv,_ZTv0_n12_N4ee343fooEv),
+};
+static VTT_ENTRY vtt_gg34[] = {
+ {&(_ZTV4gg34[4]), 4,16},
+ {&(_tg__ZTV4ee34__4gg34[3]), 3,4},
+ {&(_tg__ZTV4bb34__4ee34__4gg34[3]), 3,4},
+ {&(_ZTV4gg34[8]), 8,16},
+ {&(_ZTV4gg34[12]), 12,16},
+ {&(_ZTV4gg34[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI4gg34[];
+extern VTBL_ENTRY _ZTV4gg34[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg34[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee343fooEv,_ZTv0_n12_N4ee343fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee343fooEv,_ZThn16_N4ee343fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg343fooEv,_ZTv0_n12_N4gg343fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg343fooEv,_ZThn24_N4gg343fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg343fooEv,_ZThn16_N4gg343fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg34 = { "gg34", // class name
+ bases_gg34, 6,
+ &(vtc_gg34[0]), // expected_vtbl_contents
+ &(vtt_gg34[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg34),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg34),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg34),6, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names84,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa35 {
+ int a;
+ aa35(); // _ZN4aa35C1Ev
+ virtual void foo(); // _ZN4aa353fooEv
+ ~aa35(); // tgen
+};
+//SIG(-1 aa35) C1{ v1 Fi}
+
+
+ aa35 ::aa35(){ note_ctor("aa35", this);}
+void aa35 ::foo(){vfunc_called(this, "_ZN4aa353fooEv");}
+aa35 ::~aa35(){ note_dtor("aa35", this);} // tgen
+
+static void Test_aa35()
+{
+ extern Class_Descriptor cd_aa35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa35, buf);
+ aa35 *dp, &lv = *(dp=new (buf) aa35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa35)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa35.a");
+ test_class_info(&lv, &cd_aa35);
+ dp->~aa35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa35(Test_aa35, "aa35", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa35C1Ev();
+extern void _ZN4aa35D1Ev();
+Name_Map name_map_aa35[] = {
+ NSPAIR(_ZN4aa35C1Ev),
+ NSPAIR(_ZN4aa35D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa35[];
+extern void _ZN4aa353fooEv();
+static VTBL_ENTRY vtc_aa35[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa35[0]),
+ (VTBL_ENTRY)&_ZN4aa353fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa35[];
+extern VTBL_ENTRY _ZTV4aa35[];
+Class_Descriptor cd_aa35 = { "aa35", // class name
+ 0,0,//no base classes
+ &(vtc_aa35[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa35),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa35),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb35 {
+ int b;
+ bb35(); // _ZN4bb35C1Ev
+ virtual void foo(); // _ZN4bb353fooEv
+ ~bb35(); // tgen
+};
+//SIG(-1 bb35) C1{ v1 Fi}
+
+
+ bb35 ::bb35(){ note_ctor("bb35", this);}
+void bb35 ::foo(){vfunc_called(this, "_ZN4bb353fooEv");}
+bb35 ::~bb35(){ note_dtor("bb35", this);} // tgen
+
+static void Test_bb35()
+{
+ extern Class_Descriptor cd_bb35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb35, buf);
+ bb35 *dp, &lv = *(dp=new (buf) bb35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb35)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb35.b");
+ test_class_info(&lv, &cd_bb35);
+ dp->~bb35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb35(Test_bb35, "bb35", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb35C1Ev();
+extern void _ZN4bb35D1Ev();
+Name_Map name_map_bb35[] = {
+ NSPAIR(_ZN4bb35C1Ev),
+ NSPAIR(_ZN4bb35D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb35[];
+extern void _ZN4bb353fooEv();
+static VTBL_ENTRY vtc_bb35[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb35[0]),
+ (VTBL_ENTRY)&_ZN4bb353fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb35[];
+extern VTBL_ENTRY _ZTV4bb35[];
+Class_Descriptor cd_bb35 = { "bb35", // class name
+ 0,0,//no base classes
+ &(vtc_bb35[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb35),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb35),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc35 {
+ int c;
+ cc35(); // _ZN4cc35C1Ev
+ virtual void foo(); // _ZN4cc353fooEv
+ ~cc35(); // tgen
+};
+//SIG(-1 cc35) C1{ v1 Fi}
+
+
+ cc35 ::cc35(){ note_ctor("cc35", this);}
+void cc35 ::foo(){vfunc_called(this, "_ZN4cc353fooEv");}
+cc35 ::~cc35(){ note_dtor("cc35", this);} // tgen
+
+static void Test_cc35()
+{
+ extern Class_Descriptor cd_cc35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc35, buf);
+ cc35 *dp, &lv = *(dp=new (buf) cc35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc35)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc35.c");
+ test_class_info(&lv, &cd_cc35);
+ dp->~cc35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc35(Test_cc35, "cc35", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc35C1Ev();
+extern void _ZN4cc35D1Ev();
+Name_Map name_map_cc35[] = {
+ NSPAIR(_ZN4cc35C1Ev),
+ NSPAIR(_ZN4cc35D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc35[];
+extern void _ZN4cc353fooEv();
+static VTBL_ENTRY vtc_cc35[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc35[0]),
+ (VTBL_ENTRY)&_ZN4cc353fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc35[];
+extern VTBL_ENTRY _ZTV4cc35[];
+Class_Descriptor cd_cc35 = { "cc35", // class name
+ 0,0,//no base classes
+ &(vtc_cc35[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc35),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc35),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd35 {
+ int d;
+ dd35(); // _ZN4dd35C1Ev
+ virtual void foo(); // _ZN4dd353fooEv
+ ~dd35(); // tgen
+};
+//SIG(-1 dd35) C1{ v1 Fi}
+
+
+ dd35 ::dd35(){ note_ctor("dd35", this);}
+void dd35 ::foo(){vfunc_called(this, "_ZN4dd353fooEv");}
+dd35 ::~dd35(){ note_dtor("dd35", this);} // tgen
+
+static void Test_dd35()
+{
+ extern Class_Descriptor cd_dd35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd35, buf);
+ dd35 *dp, &lv = *(dp=new (buf) dd35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd35)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd35.d");
+ test_class_info(&lv, &cd_dd35);
+ dp->~dd35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd35(Test_dd35, "dd35", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd35C1Ev();
+extern void _ZN4dd35D1Ev();
+Name_Map name_map_dd35[] = {
+ NSPAIR(_ZN4dd35C1Ev),
+ NSPAIR(_ZN4dd35D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd35[];
+extern void _ZN4dd353fooEv();
+static VTBL_ENTRY vtc_dd35[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd35[0]),
+ (VTBL_ENTRY)&_ZN4dd353fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd35[];
+extern VTBL_ENTRY _ZTV4dd35[];
+Class_Descriptor cd_dd35 = { "dd35", // class name
+ 0,0,//no base classes
+ &(vtc_dd35[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd35),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd35),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35 : virtual aa35 , virtual bb35 {
+ int e;
+ ee35(const ABISELECT(__tsi64,int) *const *); // _ZN4ee35C2Ev
+ virtual void foo(); // _ZN4ee353fooEv
+ ~ee35(); // tgen
+ ee35(); // tgen
+};
+//SIG(-1 ee35) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee35 ::ee35(const ABISELECT(__tsi64,int) *const *){}
+void ee35 ::foo(){vfunc_called(this, "_ZN4ee353fooEv");}
+ee35 ::~ee35(){ note_dtor("ee35", this);} // tgen
+ee35 ::ee35(){ note_ctor("ee35", this);} // tgen
+
+static void Test_ee35()
+{
+ extern Class_Descriptor cd_ee35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee35, buf);
+ ee35 *dp, &lv = *(dp=new (buf) ee35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35)");
+ check_base_class_offset(lv, (aa35*), ABISELECT(16,8), "ee35");
+ check_base_class_offset(lv, (bb35*), ABISELECT(32,16), "ee35");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35.e");
+ test_class_info(&lv, &cd_ee35);
+ dp->~ee35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35(Test_ee35, "ee35", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee35C1Ev();
+extern void _ZN4ee35D1Ev();
+Name_Map name_map_ee35[] = {
+ NSPAIR(_ZN4ee35C1Ev),
+ NSPAIR(_ZN4ee35D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa35;
+extern VTBL_ENTRY _ZTI4aa35[];
+extern VTBL_ENTRY _ZTV4aa35[];
+extern Class_Descriptor cd_bb35;
+extern VTBL_ENTRY _ZTI4bb35[];
+extern VTBL_ENTRY _ZTV4bb35[];
+static Base_Class bases_ee35[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa35, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb35, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee35[];
+extern void _ZN4ee353fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv)();
+extern void ABISELECT(_ZThn16_N4ee353fooEv,_ZThn8_N4ee353fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv)();
+extern void ABISELECT(_ZThn32_N4ee353fooEv,_ZThn16_N4ee353fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee35[0]),
+ (VTBL_ENTRY)&_ZN4ee353fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee35[];
+static VTT_ENTRY vtt_ee35[] = {
+ {&(_ZTV4ee35[4]), 4,13},
+ {&(_ZTV4ee35[8]), 8,13},
+ {&(_ZTV4ee35[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee35[];
+extern VTBL_ENTRY _ZTV4ee35[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee35[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee353fooEv,_ZThn16_N4ee353fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee353fooEv,_ZThn8_N4ee353fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35 = { "ee35", // class name
+ bases_ee35, 2,
+ &(vtc_ee35[0]), // expected_vtbl_contents
+ &(vtt_ee35[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee35),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee35),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee35),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff35 : cc35 , dd35 {
+ int f;
+ ff35(); // _ZN4ff35C1Ev
+ virtual void foo(); // _ZN4ff353fooEv
+ ~ff35(); // tgen
+};
+//SIG(-1 ff35) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff35 ::ff35(){ note_ctor("ff35", this);}
+void ff35 ::foo(){vfunc_called(this, "_ZN4ff353fooEv");}
+ff35 ::~ff35(){ note_dtor("ff35", this);} // tgen
+
+static void Test_ff35()
+{
+ extern Class_Descriptor cd_ff35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff35, buf);
+ ff35 *dp, &lv = *(dp=new (buf) ff35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff35)");
+ check_base_class_offset(lv, (cc35*), 0, "ff35");
+ check_base_class_offset(lv, (dd35*), ABISELECT(16,8), "ff35");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff35.f");
+ test_class_info(&lv, &cd_ff35);
+ dp->~ff35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff35(Test_ff35, "ff35", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff35C1Ev();
+extern void _ZN4ff35D1Ev();
+Name_Map name_map_ff35[] = {
+ NSPAIR(_ZN4ff35C1Ev),
+ NSPAIR(_ZN4ff35D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc35;
+extern VTBL_ENTRY _ZTI4cc35[];
+extern VTBL_ENTRY _ZTV4cc35[];
+extern Class_Descriptor cd_dd35;
+extern VTBL_ENTRY _ZTI4dd35[];
+extern VTBL_ENTRY _ZTV4dd35[];
+static Base_Class bases_ff35[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc35, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd35, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff35[];
+extern void _ZN4ff353fooEv();
+extern void ABISELECT(_ZThn16_N4ff353fooEv,_ZThn8_N4ff353fooEv)();
+static VTBL_ENTRY vtc_ff35[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff35[0]),
+ (VTBL_ENTRY)&_ZN4ff353fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff353fooEv,_ZThn8_N4ff353fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff35[];
+extern VTBL_ENTRY _ZTV4ff35[];
+Class_Descriptor cd_ff35 = { "ff35", // class name
+ bases_ff35, 2,
+ &(vtc_ff35[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff35),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff35),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg35 : ee35 , virtual ff35 {
+ int g;
+ gg35(const ABISELECT(__tsi64,int) *const *); // _ZN4gg35C2Ev
+ virtual void foo(); // _ZN4gg353fooEv
+ ~gg35(); // tgen
+ gg35(); // tgen
+};
+//SIG(1 gg35) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg35 ::gg35(const ABISELECT(__tsi64,int) *const *){}
+void gg35 ::foo(){vfunc_called(this, "_ZN4gg353fooEv");}
+gg35 ::~gg35(){ note_dtor("gg35", this);} // tgen
+gg35 ::gg35(){ note_ctor("gg35", this);} // tgen
+
+static void Test_gg35()
+{
+ extern Class_Descriptor cd_gg35;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg35, buf);
+ gg35 *dp, &lv = *(dp=new (buf) gg35());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg35)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg35)");
+ check_base_class_offset(lv, (aa35*)(ee35*), ABISELECT(16,12), "gg35");
+ check_base_class_offset(lv, (bb35*)(ee35*), ABISELECT(32,20), "gg35");
+ check_base_class_offset(lv, (ee35*), 0, "gg35");
+ check_base_class_offset(lv, (cc35*)(ff35*), ABISELECT(48,28), "gg35");
+ check_base_class_offset(lv, (dd35*)(ff35*), ABISELECT(64,36), "gg35");
+ check_base_class_offset(lv, (ff35*), ABISELECT(48,28), "gg35");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg35.g");
+ test_class_info(&lv, &cd_gg35);
+ dp->~gg35();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg35(Test_gg35, "gg35", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg35C1Ev();
+extern void _ZN4gg35D1Ev();
+Name_Map name_map_gg35[] = {
+ NSPAIR(_ZN4gg35C1Ev),
+ NSPAIR(_ZN4gg35D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa35;
+extern VTBL_ENTRY _ZTI4aa35[];
+extern VTBL_ENTRY _ZTV4aa35[];
+extern Class_Descriptor cd_bb35;
+extern VTBL_ENTRY _ZTI4bb35[];
+extern VTBL_ENTRY _ZTV4bb35[];
+extern Class_Descriptor cd_ee35;
+extern VTBL_ENTRY _ZTI4ee35[];
+extern VTBL_ENTRY _ZTV4ee35[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee35[];
+extern Class_Descriptor cd_cc35;
+extern VTBL_ENTRY _ZTI4cc35[];
+extern VTBL_ENTRY _ZTV4cc35[];
+extern Class_Descriptor cd_dd35;
+extern VTBL_ENTRY _ZTI4dd35[];
+extern VTBL_ENTRY _ZTV4dd35[];
+extern Class_Descriptor cd_ff35;
+extern VTBL_ENTRY _ZTI4ff35[];
+extern VTBL_ENTRY _ZTV4ff35[];
+static Base_Class bases_gg35[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa35, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb35, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee35, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc35, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd35, ABISELECT(64,36), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff35, ABISELECT(48,28), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg35[];
+extern void _ZN4gg353fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv)();
+extern void ABISELECT(_ZThn16_N4gg353fooEv,_ZThn12_N4gg353fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv)();
+extern void ABISELECT(_ZThn32_N4gg353fooEv,_ZThn20_N4gg353fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv)();
+extern void ABISELECT(_ZThn48_N4gg353fooEv,_ZThn28_N4gg353fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg353fooEv,_ZTvn8_n12_N4gg353fooEv)();
+static VTBL_ENTRY vtc_gg35[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg35[0]),
+ (VTBL_ENTRY)&_ZN4gg353fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg353fooEv,_ZTvn8_n12_N4gg353fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg35[];
+extern void _ZN4ee353fooEv();
+static VTBL_ENTRY _tg__ZTV4ee35__4gg35[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee35[0]),
+ (VTBL_ENTRY)&_ZN4ee353fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv)();
+extern void ABISELECT(_ZThn16_N4ee353fooEv,_ZThn12_N4ee353fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa35__4ee35__4gg35[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv)();
+extern void ABISELECT(_ZThn32_N4ee353fooEv,_ZThn20_N4ee353fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb35__4ee35__4gg35[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ee35[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv),
+};
+static VTT_ENTRY vtt_gg35[] = {
+ {&(_ZTV4gg35[5]), 5,21},
+ {&(_tg__ZTV4ee35__4gg35[4]), 4,5},
+ {&(_tg__ZTV4aa35__4ee35__4gg35[3]), 3,4},
+ {&(_tg__ZTV4bb35__4ee35__4gg35[3]), 3,4},
+ {&(_ZTV4gg35[9]), 9,21},
+ {&(_ZTV4gg35[13]), 13,21},
+ {&(_ZTV4gg35[17]), 17,21},
+ {&(_ZTV4gg35[20]), 20,21},
+};
+extern VTBL_ENTRY _ZTI4gg35[];
+extern VTBL_ENTRY _ZTV4gg35[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg35[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee353fooEv,_ZTv0_n12_N4ee353fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee353fooEv,_ZThn20_N4ee353fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee353fooEv,_ZThn12_N4ee353fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg353fooEv,_ZTv0_n12_N4gg353fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg353fooEv,_ZThn28_N4gg353fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg353fooEv,_ZThn20_N4gg353fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg353fooEv,_ZThn12_N4gg353fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg35 = { "gg35", // class name
+ bases_gg35, 6,
+ &(vtc_gg35[0]), // expected_vtbl_contents
+ &(vtt_gg35[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg35),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg35),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg35),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names86,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa36 {
+ int a;
+ aa36(); // _ZN4aa36C1Ev
+ virtual void foo(); // _ZN4aa363fooEv
+ ~aa36(); // tgen
+};
+//SIG(-1 aa36) C1{ v1 Fi}
+
+
+ aa36 ::aa36(){ note_ctor("aa36", this);}
+void aa36 ::foo(){vfunc_called(this, "_ZN4aa363fooEv");}
+aa36 ::~aa36(){ note_dtor("aa36", this);} // tgen
+
+static void Test_aa36()
+{
+ extern Class_Descriptor cd_aa36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa36, buf);
+ aa36 *dp, &lv = *(dp=new (buf) aa36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa36)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa36.a");
+ test_class_info(&lv, &cd_aa36);
+ dp->~aa36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa36(Test_aa36, "aa36", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa36C1Ev();
+extern void _ZN4aa36D1Ev();
+Name_Map name_map_aa36[] = {
+ NSPAIR(_ZN4aa36C1Ev),
+ NSPAIR(_ZN4aa36D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa36[];
+extern void _ZN4aa363fooEv();
+static VTBL_ENTRY vtc_aa36[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa36[0]),
+ (VTBL_ENTRY)&_ZN4aa363fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa36[];
+extern VTBL_ENTRY _ZTV4aa36[];
+Class_Descriptor cd_aa36 = { "aa36", // class name
+ 0,0,//no base classes
+ &(vtc_aa36[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa36),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa36),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb36 {
+ int b;
+ bb36(); // _ZN4bb36C1Ev
+ virtual void foo(); // _ZN4bb363fooEv
+ ~bb36(); // tgen
+};
+//SIG(-1 bb36) C1{ v1 Fi}
+
+
+ bb36 ::bb36(){ note_ctor("bb36", this);}
+void bb36 ::foo(){vfunc_called(this, "_ZN4bb363fooEv");}
+bb36 ::~bb36(){ note_dtor("bb36", this);} // tgen
+
+static void Test_bb36()
+{
+ extern Class_Descriptor cd_bb36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb36, buf);
+ bb36 *dp, &lv = *(dp=new (buf) bb36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb36)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb36.b");
+ test_class_info(&lv, &cd_bb36);
+ dp->~bb36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb36(Test_bb36, "bb36", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb36C1Ev();
+extern void _ZN4bb36D1Ev();
+Name_Map name_map_bb36[] = {
+ NSPAIR(_ZN4bb36C1Ev),
+ NSPAIR(_ZN4bb36D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb36[];
+extern void _ZN4bb363fooEv();
+static VTBL_ENTRY vtc_bb36[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb36[0]),
+ (VTBL_ENTRY)&_ZN4bb363fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb36[];
+extern VTBL_ENTRY _ZTV4bb36[];
+Class_Descriptor cd_bb36 = { "bb36", // class name
+ 0,0,//no base classes
+ &(vtc_bb36[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb36),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb36),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc36 {
+ int c;
+ cc36(); // _ZN4cc36C1Ev
+ virtual void foo(); // _ZN4cc363fooEv
+ ~cc36(); // tgen
+};
+//SIG(-1 cc36) C1{ v1 Fi}
+
+
+ cc36 ::cc36(){ note_ctor("cc36", this);}
+void cc36 ::foo(){vfunc_called(this, "_ZN4cc363fooEv");}
+cc36 ::~cc36(){ note_dtor("cc36", this);} // tgen
+
+static void Test_cc36()
+{
+ extern Class_Descriptor cd_cc36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc36, buf);
+ cc36 *dp, &lv = *(dp=new (buf) cc36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc36)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc36.c");
+ test_class_info(&lv, &cd_cc36);
+ dp->~cc36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc36(Test_cc36, "cc36", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc36C1Ev();
+extern void _ZN4cc36D1Ev();
+Name_Map name_map_cc36[] = {
+ NSPAIR(_ZN4cc36C1Ev),
+ NSPAIR(_ZN4cc36D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc36[];
+extern void _ZN4cc363fooEv();
+static VTBL_ENTRY vtc_cc36[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc36[0]),
+ (VTBL_ENTRY)&_ZN4cc363fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc36[];
+extern VTBL_ENTRY _ZTV4cc36[];
+Class_Descriptor cd_cc36 = { "cc36", // class name
+ 0,0,//no base classes
+ &(vtc_cc36[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc36),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc36),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd36 {
+ int d;
+ dd36(); // _ZN4dd36C1Ev
+ virtual void foo(); // _ZN4dd363fooEv
+ ~dd36(); // tgen
+};
+//SIG(-1 dd36) C1{ v1 Fi}
+
+
+ dd36 ::dd36(){ note_ctor("dd36", this);}
+void dd36 ::foo(){vfunc_called(this, "_ZN4dd363fooEv");}
+dd36 ::~dd36(){ note_dtor("dd36", this);} // tgen
+
+static void Test_dd36()
+{
+ extern Class_Descriptor cd_dd36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd36, buf);
+ dd36 *dp, &lv = *(dp=new (buf) dd36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd36)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd36.d");
+ test_class_info(&lv, &cd_dd36);
+ dp->~dd36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd36(Test_dd36, "dd36", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd36C1Ev();
+extern void _ZN4dd36D1Ev();
+Name_Map name_map_dd36[] = {
+ NSPAIR(_ZN4dd36C1Ev),
+ NSPAIR(_ZN4dd36D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd36[];
+extern void _ZN4dd363fooEv();
+static VTBL_ENTRY vtc_dd36[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd36[0]),
+ (VTBL_ENTRY)&_ZN4dd363fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd36[];
+extern VTBL_ENTRY _ZTV4dd36[];
+Class_Descriptor cd_dd36 = { "dd36", // class name
+ 0,0,//no base classes
+ &(vtc_dd36[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd36),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd36),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36 : aa36 , bb36 {
+ int e;
+ ee36(); // _ZN4ee36C1Ev
+ virtual void foo(); // _ZN4ee363fooEv
+ ~ee36(); // tgen
+};
+//SIG(-1 ee36) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee36 ::ee36(){ note_ctor("ee36", this);}
+void ee36 ::foo(){vfunc_called(this, "_ZN4ee363fooEv");}
+ee36 ::~ee36(){ note_dtor("ee36", this);} // tgen
+
+static void Test_ee36()
+{
+ extern Class_Descriptor cd_ee36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee36, buf);
+ ee36 *dp, &lv = *(dp=new (buf) ee36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36)");
+ check_base_class_offset(lv, (aa36*), 0, "ee36");
+ check_base_class_offset(lv, (bb36*), ABISELECT(16,8), "ee36");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee36.e");
+ test_class_info(&lv, &cd_ee36);
+ dp->~ee36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36(Test_ee36, "ee36", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee36C1Ev();
+extern void _ZN4ee36D1Ev();
+Name_Map name_map_ee36[] = {
+ NSPAIR(_ZN4ee36C1Ev),
+ NSPAIR(_ZN4ee36D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa36;
+extern VTBL_ENTRY _ZTI4aa36[];
+extern VTBL_ENTRY _ZTV4aa36[];
+extern Class_Descriptor cd_bb36;
+extern VTBL_ENTRY _ZTI4bb36[];
+extern VTBL_ENTRY _ZTV4bb36[];
+static Base_Class bases_ee36[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa36, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb36, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee36[];
+extern void _ZN4ee363fooEv();
+extern void ABISELECT(_ZThn16_N4ee363fooEv,_ZThn8_N4ee363fooEv)();
+static VTBL_ENTRY vtc_ee36[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee36[0]),
+ (VTBL_ENTRY)&_ZN4ee363fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee36[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee363fooEv,_ZThn8_N4ee363fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee36[];
+extern VTBL_ENTRY _ZTV4ee36[];
+Class_Descriptor cd_ee36 = { "ee36", // class name
+ bases_ee36, 2,
+ &(vtc_ee36[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee36),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee36),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff36 : virtual cc36 , dd36 {
+ int f;
+ ff36(const ABISELECT(__tsi64,int) *const *); // _ZN4ff36C2Ev
+ virtual void foo(); // _ZN4ff363fooEv
+ ~ff36(); // tgen
+ ff36(); // tgen
+};
+//SIG(-1 ff36) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff36 ::ff36(const ABISELECT(__tsi64,int) *const *){}
+void ff36 ::foo(){vfunc_called(this, "_ZN4ff363fooEv");}
+ff36 ::~ff36(){ note_dtor("ff36", this);} // tgen
+ff36 ::ff36(){ note_ctor("ff36", this);} // tgen
+
+static void Test_ff36()
+{
+ extern Class_Descriptor cd_ff36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff36, buf);
+ ff36 *dp, &lv = *(dp=new (buf) ff36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff36)");
+ check_base_class_offset(lv, (cc36*), ABISELECT(16,12), "ff36");
+ check_base_class_offset(lv, (dd36*), 0, "ff36");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff36.f");
+ test_class_info(&lv, &cd_ff36);
+ dp->~ff36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff36(Test_ff36, "ff36", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff36C1Ev();
+extern void _ZN4ff36D1Ev();
+Name_Map name_map_ff36[] = {
+ NSPAIR(_ZN4ff36C1Ev),
+ NSPAIR(_ZN4ff36D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc36;
+extern VTBL_ENTRY _ZTI4cc36[];
+extern VTBL_ENTRY _ZTV4cc36[];
+extern Class_Descriptor cd_dd36;
+extern VTBL_ENTRY _ZTI4dd36[];
+extern VTBL_ENTRY _ZTV4dd36[];
+static Base_Class bases_ff36[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc36, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd36, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff36[];
+extern void _ZN4ff363fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff363fooEv,_ZTv0_n12_N4ff363fooEv)();
+extern void ABISELECT(_ZThn16_N4ff363fooEv,_ZThn12_N4ff363fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff36[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff36[0]),
+ (VTBL_ENTRY)&_ZN4ff363fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff36[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff363fooEv,_ZTv0_n12_N4ff363fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff36[];
+static VTT_ENTRY vtt_ff36[] = {
+ {&(_ZTV4ff36[3]), 3,8},
+ {&(_ZTV4ff36[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff36[];
+extern VTBL_ENTRY _ZTV4ff36[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff36[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff363fooEv,_ZTv0_n12_N4ff363fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff363fooEv,_ZThn12_N4ff363fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff36 = { "ff36", // class name
+ bases_ff36, 2,
+ &(vtc_ff36[0]), // expected_vtbl_contents
+ &(vtt_ff36[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff36),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff36),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff36),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names87,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg36 : ee36 , virtual ff36 {
+ int g;
+ gg36(const ABISELECT(__tsi64,int) *const *); // _ZN4gg36C2Ev
+ virtual void foo(); // _ZN4gg363fooEv
+ ~gg36(); // tgen
+ gg36(); // tgen
+};
+//SIG(1 gg36) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg36 ::gg36(const ABISELECT(__tsi64,int) *const *){}
+void gg36 ::foo(){vfunc_called(this, "_ZN4gg363fooEv");}
+gg36 ::~gg36(){ note_dtor("gg36", this);} // tgen
+gg36 ::gg36(){ note_ctor("gg36", this);} // tgen
+
+static void Test_gg36()
+{
+ extern Class_Descriptor cd_gg36;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg36, buf);
+ gg36 *dp, &lv = *(dp=new (buf) gg36());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg36)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg36)");
+ check_base_class_offset(lv, (aa36*)(ee36*), 0, "gg36");
+ check_base_class_offset(lv, (bb36*)(ee36*), ABISELECT(16,8), "gg36");
+ check_base_class_offset(lv, (ee36*), 0, "gg36");
+ check_base_class_offset(lv, (cc36*)(ff36*), ABISELECT(56,36), "gg36");
+ check_base_class_offset(lv, (dd36*)(ff36*), ABISELECT(40,24), "gg36");
+ check_base_class_offset(lv, (ff36*), ABISELECT(40,24), "gg36");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg36.g");
+ test_class_info(&lv, &cd_gg36);
+ dp->~gg36();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg36(Test_gg36, "gg36", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg36C1Ev();
+extern void _ZN4gg36D1Ev();
+Name_Map name_map_gg36[] = {
+ NSPAIR(_ZN4gg36C1Ev),
+ NSPAIR(_ZN4gg36D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa36;
+extern VTBL_ENTRY _ZTI4aa36[];
+extern VTBL_ENTRY _ZTV4aa36[];
+extern Class_Descriptor cd_bb36;
+extern VTBL_ENTRY _ZTI4bb36[];
+extern VTBL_ENTRY _ZTV4bb36[];
+extern Class_Descriptor cd_ee36;
+extern VTBL_ENTRY _ZTI4ee36[];
+extern VTBL_ENTRY _ZTV4ee36[];
+extern Class_Descriptor cd_cc36;
+extern VTBL_ENTRY _ZTI4cc36[];
+extern VTBL_ENTRY _ZTV4cc36[];
+extern Class_Descriptor cd_dd36;
+extern VTBL_ENTRY _ZTI4dd36[];
+extern VTBL_ENTRY _ZTV4dd36[];
+extern Class_Descriptor cd_ff36;
+extern VTBL_ENTRY _ZTI4ff36[];
+extern VTBL_ENTRY _ZTV4ff36[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff36[];
+static Base_Class bases_gg36[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa36, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb36, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee36, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc36, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd36, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff36, ABISELECT(40,24), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg36[];
+extern void _ZN4gg363fooEv();
+extern void ABISELECT(_ZThn16_N4gg363fooEv,_ZThn8_N4gg363fooEv)();
+extern void ABISELECT(_ZTv0_n32_N4gg363fooEv,_ZTv0_n16_N4gg363fooEv)();
+extern void ABISELECT(_ZThn40_N4gg363fooEv,_ZThn24_N4gg363fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg363fooEv,_ZTv0_n12_N4gg363fooEv)();
+extern void ABISELECT(_ZThn56_N4gg363fooEv,_ZThn36_N4gg363fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg36[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg36[0]),
+ (VTBL_ENTRY)&_ZN4gg363fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg36[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg363fooEv,_ZThn8_N4gg363fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg36[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg363fooEv,_ZTv0_n16_N4gg363fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg36[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg363fooEv,_ZTv0_n12_N4gg363fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg36[];
+extern void _ZN4ff363fooEv();
+static VTBL_ENTRY _tg__ZTV4ff36__4gg36[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff36[0]),
+ (VTBL_ENTRY)&_ZN4ff363fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff363fooEv,_ZTv0_n12_N4ff363fooEv)();
+extern void ABISELECT(_ZThn16_N4ff363fooEv,_ZThn12_N4ff363fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc36__4ff36__4gg36[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff36[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff363fooEv,_ZTv0_n12_N4ff363fooEv),
+};
+static VTT_ENTRY vtt_gg36[] = {
+ {&(_ZTV4gg36[4]), 4,17},
+ {&(_ZTV4gg36[12]), 12,17},
+ {&(_ZTV4gg36[16]), 16,17},
+ {&(_tg__ZTV4ff36__4gg36[3]), 3,4},
+ {&(_tg__ZTV4cc36__4ff36__4gg36[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg36[];
+extern VTBL_ENTRY _ZTV4gg36[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg36[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff363fooEv,_ZTv0_n12_N4ff363fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff363fooEv,_ZThn12_N4ff363fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg363fooEv,_ZTv0_n12_N4gg363fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg363fooEv,_ZThn36_N4gg363fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg363fooEv,_ZTv0_n16_N4gg363fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg363fooEv,_ZThn24_N4gg363fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg36 = { "gg36", // class name
+ bases_gg36, 6,
+ &(vtc_gg36[0]), // expected_vtbl_contents
+ &(vtt_gg36[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg36),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg36),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg36),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names88,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa37 {
+ int a;
+ aa37(); // _ZN4aa37C1Ev
+ virtual void foo(); // _ZN4aa373fooEv
+ ~aa37(); // tgen
+};
+//SIG(-1 aa37) C1{ v1 Fi}
+
+
+ aa37 ::aa37(){ note_ctor("aa37", this);}
+void aa37 ::foo(){vfunc_called(this, "_ZN4aa373fooEv");}
+aa37 ::~aa37(){ note_dtor("aa37", this);} // tgen
+
+static void Test_aa37()
+{
+ extern Class_Descriptor cd_aa37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa37, buf);
+ aa37 *dp, &lv = *(dp=new (buf) aa37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa37)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa37.a");
+ test_class_info(&lv, &cd_aa37);
+ dp->~aa37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa37(Test_aa37, "aa37", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa37C1Ev();
+extern void _ZN4aa37D1Ev();
+Name_Map name_map_aa37[] = {
+ NSPAIR(_ZN4aa37C1Ev),
+ NSPAIR(_ZN4aa37D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa37[];
+extern void _ZN4aa373fooEv();
+static VTBL_ENTRY vtc_aa37[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa37[0]),
+ (VTBL_ENTRY)&_ZN4aa373fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa37[];
+extern VTBL_ENTRY _ZTV4aa37[];
+Class_Descriptor cd_aa37 = { "aa37", // class name
+ 0,0,//no base classes
+ &(vtc_aa37[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa37),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa37),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb37 {
+ int b;
+ bb37(); // _ZN4bb37C1Ev
+ virtual void foo(); // _ZN4bb373fooEv
+ ~bb37(); // tgen
+};
+//SIG(-1 bb37) C1{ v1 Fi}
+
+
+ bb37 ::bb37(){ note_ctor("bb37", this);}
+void bb37 ::foo(){vfunc_called(this, "_ZN4bb373fooEv");}
+bb37 ::~bb37(){ note_dtor("bb37", this);} // tgen
+
+static void Test_bb37()
+{
+ extern Class_Descriptor cd_bb37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb37, buf);
+ bb37 *dp, &lv = *(dp=new (buf) bb37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb37)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb37.b");
+ test_class_info(&lv, &cd_bb37);
+ dp->~bb37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb37(Test_bb37, "bb37", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb37C1Ev();
+extern void _ZN4bb37D1Ev();
+Name_Map name_map_bb37[] = {
+ NSPAIR(_ZN4bb37C1Ev),
+ NSPAIR(_ZN4bb37D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb37[];
+extern void _ZN4bb373fooEv();
+static VTBL_ENTRY vtc_bb37[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb37[0]),
+ (VTBL_ENTRY)&_ZN4bb373fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb37[];
+extern VTBL_ENTRY _ZTV4bb37[];
+Class_Descriptor cd_bb37 = { "bb37", // class name
+ 0,0,//no base classes
+ &(vtc_bb37[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb37),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb37),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc37 {
+ int c;
+ cc37(); // _ZN4cc37C1Ev
+ virtual void foo(); // _ZN4cc373fooEv
+ ~cc37(); // tgen
+};
+//SIG(-1 cc37) C1{ v1 Fi}
+
+
+ cc37 ::cc37(){ note_ctor("cc37", this);}
+void cc37 ::foo(){vfunc_called(this, "_ZN4cc373fooEv");}
+cc37 ::~cc37(){ note_dtor("cc37", this);} // tgen
+
+static void Test_cc37()
+{
+ extern Class_Descriptor cd_cc37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc37, buf);
+ cc37 *dp, &lv = *(dp=new (buf) cc37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc37)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc37.c");
+ test_class_info(&lv, &cd_cc37);
+ dp->~cc37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc37(Test_cc37, "cc37", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc37C1Ev();
+extern void _ZN4cc37D1Ev();
+Name_Map name_map_cc37[] = {
+ NSPAIR(_ZN4cc37C1Ev),
+ NSPAIR(_ZN4cc37D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc37[];
+extern void _ZN4cc373fooEv();
+static VTBL_ENTRY vtc_cc37[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc37[0]),
+ (VTBL_ENTRY)&_ZN4cc373fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc37[];
+extern VTBL_ENTRY _ZTV4cc37[];
+Class_Descriptor cd_cc37 = { "cc37", // class name
+ 0,0,//no base classes
+ &(vtc_cc37[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc37),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc37),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd37 {
+ int d;
+ dd37(); // _ZN4dd37C1Ev
+ virtual void foo(); // _ZN4dd373fooEv
+ ~dd37(); // tgen
+};
+//SIG(-1 dd37) C1{ v1 Fi}
+
+
+ dd37 ::dd37(){ note_ctor("dd37", this);}
+void dd37 ::foo(){vfunc_called(this, "_ZN4dd373fooEv");}
+dd37 ::~dd37(){ note_dtor("dd37", this);} // tgen
+
+static void Test_dd37()
+{
+ extern Class_Descriptor cd_dd37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd37, buf);
+ dd37 *dp, &lv = *(dp=new (buf) dd37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd37)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd37.d");
+ test_class_info(&lv, &cd_dd37);
+ dp->~dd37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd37(Test_dd37, "dd37", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd37C1Ev();
+extern void _ZN4dd37D1Ev();
+Name_Map name_map_dd37[] = {
+ NSPAIR(_ZN4dd37C1Ev),
+ NSPAIR(_ZN4dd37D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd37[];
+extern void _ZN4dd373fooEv();
+static VTBL_ENTRY vtc_dd37[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd37[0]),
+ (VTBL_ENTRY)&_ZN4dd373fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd37[];
+extern VTBL_ENTRY _ZTV4dd37[];
+Class_Descriptor cd_dd37 = { "dd37", // class name
+ 0,0,//no base classes
+ &(vtc_dd37[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd37),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd37),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37 : virtual aa37 , bb37 {
+ int e;
+ ee37(const ABISELECT(__tsi64,int) *const *); // _ZN4ee37C2Ev
+ virtual void foo(); // _ZN4ee373fooEv
+ ~ee37(); // tgen
+ ee37(); // tgen
+};
+//SIG(-1 ee37) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee37 ::ee37(const ABISELECT(__tsi64,int) *const *){}
+void ee37 ::foo(){vfunc_called(this, "_ZN4ee373fooEv");}
+ee37 ::~ee37(){ note_dtor("ee37", this);} // tgen
+ee37 ::ee37(){ note_ctor("ee37", this);} // tgen
+
+static void Test_ee37()
+{
+ extern Class_Descriptor cd_ee37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee37, buf);
+ ee37 *dp, &lv = *(dp=new (buf) ee37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37)");
+ check_base_class_offset(lv, (aa37*), ABISELECT(16,12), "ee37");
+ check_base_class_offset(lv, (bb37*), 0, "ee37");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee37.e");
+ test_class_info(&lv, &cd_ee37);
+ dp->~ee37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37(Test_ee37, "ee37", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee37C1Ev();
+extern void _ZN4ee37D1Ev();
+Name_Map name_map_ee37[] = {
+ NSPAIR(_ZN4ee37C1Ev),
+ NSPAIR(_ZN4ee37D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa37;
+extern VTBL_ENTRY _ZTI4aa37[];
+extern VTBL_ENTRY _ZTV4aa37[];
+extern Class_Descriptor cd_bb37;
+extern VTBL_ENTRY _ZTI4bb37[];
+extern VTBL_ENTRY _ZTV4bb37[];
+static Base_Class bases_ee37[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa37, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb37, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee37[];
+extern void _ZN4ee373fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee373fooEv,_ZTv0_n12_N4ee373fooEv)();
+extern void ABISELECT(_ZThn16_N4ee373fooEv,_ZThn12_N4ee373fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee37[0]),
+ (VTBL_ENTRY)&_ZN4ee373fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee373fooEv,_ZTv0_n12_N4ee373fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee37[];
+static VTT_ENTRY vtt_ee37[] = {
+ {&(_ZTV4ee37[3]), 3,8},
+ {&(_ZTV4ee37[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee37[];
+extern VTBL_ENTRY _ZTV4ee37[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee37[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee373fooEv,_ZTv0_n12_N4ee373fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee373fooEv,_ZThn12_N4ee373fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37 = { "ee37", // class name
+ bases_ee37, 2,
+ &(vtc_ee37[0]), // expected_vtbl_contents
+ &(vtt_ee37[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee37),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee37),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee37),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names89,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff37 : virtual cc37 , dd37 {
+ int f;
+ ff37(const ABISELECT(__tsi64,int) *const *); // _ZN4ff37C2Ev
+ virtual void foo(); // _ZN4ff373fooEv
+ ~ff37(); // tgen
+ ff37(); // tgen
+};
+//SIG(-1 ff37) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff37 ::ff37(const ABISELECT(__tsi64,int) *const *){}
+void ff37 ::foo(){vfunc_called(this, "_ZN4ff373fooEv");}
+ff37 ::~ff37(){ note_dtor("ff37", this);} // tgen
+ff37 ::ff37(){ note_ctor("ff37", this);} // tgen
+
+static void Test_ff37()
+{
+ extern Class_Descriptor cd_ff37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff37, buf);
+ ff37 *dp, &lv = *(dp=new (buf) ff37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff37)");
+ check_base_class_offset(lv, (cc37*), ABISELECT(16,12), "ff37");
+ check_base_class_offset(lv, (dd37*), 0, "ff37");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff37.f");
+ test_class_info(&lv, &cd_ff37);
+ dp->~ff37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff37(Test_ff37, "ff37", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff37C1Ev();
+extern void _ZN4ff37D1Ev();
+Name_Map name_map_ff37[] = {
+ NSPAIR(_ZN4ff37C1Ev),
+ NSPAIR(_ZN4ff37D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc37;
+extern VTBL_ENTRY _ZTI4cc37[];
+extern VTBL_ENTRY _ZTV4cc37[];
+extern Class_Descriptor cd_dd37;
+extern VTBL_ENTRY _ZTI4dd37[];
+extern VTBL_ENTRY _ZTV4dd37[];
+static Base_Class bases_ff37[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc37, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd37, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff37[];
+extern void _ZN4ff373fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff373fooEv,_ZTv0_n12_N4ff373fooEv)();
+extern void ABISELECT(_ZThn16_N4ff373fooEv,_ZThn12_N4ff373fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff37[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff37[0]),
+ (VTBL_ENTRY)&_ZN4ff373fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff373fooEv,_ZTv0_n12_N4ff373fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff37[];
+static VTT_ENTRY vtt_ff37[] = {
+ {&(_ZTV4ff37[3]), 3,8},
+ {&(_ZTV4ff37[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff37[];
+extern VTBL_ENTRY _ZTV4ff37[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff37[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff373fooEv,_ZTv0_n12_N4ff373fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff373fooEv,_ZThn12_N4ff373fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff37 = { "ff37", // class name
+ bases_ff37, 2,
+ &(vtc_ff37[0]), // expected_vtbl_contents
+ &(vtt_ff37[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff37),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff37),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff37),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names90,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg37 : ee37 , virtual ff37 {
+ int g;
+ gg37(const ABISELECT(__tsi64,int) *const *); // _ZN4gg37C2Ev
+ virtual void foo(); // _ZN4gg373fooEv
+ ~gg37(); // tgen
+ gg37(); // tgen
+};
+//SIG(1 gg37) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg37 ::gg37(const ABISELECT(__tsi64,int) *const *){}
+void gg37 ::foo(){vfunc_called(this, "_ZN4gg373fooEv");}
+gg37 ::~gg37(){ note_dtor("gg37", this);} // tgen
+gg37 ::gg37(){ note_ctor("gg37", this);} // tgen
+
+static void Test_gg37()
+{
+ extern Class_Descriptor cd_gg37;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg37, buf);
+ gg37 *dp, &lv = *(dp=new (buf) gg37());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg37)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg37)");
+ check_base_class_offset(lv, (aa37*)(ee37*), ABISELECT(24,16), "gg37");
+ check_base_class_offset(lv, (bb37*)(ee37*), 0, "gg37");
+ check_base_class_offset(lv, (ee37*), 0, "gg37");
+ check_base_class_offset(lv, (cc37*)(ff37*), ABISELECT(56,36), "gg37");
+ check_base_class_offset(lv, (dd37*)(ff37*), ABISELECT(40,24), "gg37");
+ check_base_class_offset(lv, (ff37*), ABISELECT(40,24), "gg37");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg37.g");
+ test_class_info(&lv, &cd_gg37);
+ dp->~gg37();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg37(Test_gg37, "gg37", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg37C1Ev();
+extern void _ZN4gg37D1Ev();
+Name_Map name_map_gg37[] = {
+ NSPAIR(_ZN4gg37C1Ev),
+ NSPAIR(_ZN4gg37D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa37;
+extern VTBL_ENTRY _ZTI4aa37[];
+extern VTBL_ENTRY _ZTV4aa37[];
+extern Class_Descriptor cd_bb37;
+extern VTBL_ENTRY _ZTI4bb37[];
+extern VTBL_ENTRY _ZTV4bb37[];
+extern Class_Descriptor cd_ee37;
+extern VTBL_ENTRY _ZTI4ee37[];
+extern VTBL_ENTRY _ZTV4ee37[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee37[];
+extern Class_Descriptor cd_cc37;
+extern VTBL_ENTRY _ZTI4cc37[];
+extern VTBL_ENTRY _ZTV4cc37[];
+extern Class_Descriptor cd_dd37;
+extern VTBL_ENTRY _ZTI4dd37[];
+extern VTBL_ENTRY _ZTV4dd37[];
+extern Class_Descriptor cd_ff37;
+extern VTBL_ENTRY _ZTI4ff37[];
+extern VTBL_ENTRY _ZTV4ff37[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff37[];
+static Base_Class bases_gg37[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa37, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb37, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee37, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc37, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd37, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff37, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg37[];
+extern void _ZN4gg373fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg373fooEv,_ZTv0_n12_N4gg373fooEv)();
+extern void ABISELECT(_ZThn24_N4gg373fooEv,_ZThn16_N4gg373fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg373fooEv,_ZTv0_n16_N4gg373fooEv)();
+extern void ABISELECT(_ZThn40_N4gg373fooEv,_ZThn24_N4gg373fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg373fooEv,_ZTv0_n12_N4gg373fooEv)();
+extern void ABISELECT(_ZThn56_N4gg373fooEv,_ZThn36_N4gg373fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg37[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg37[0]),
+ (VTBL_ENTRY)&_ZN4gg373fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg373fooEv,_ZTv0_n12_N4gg373fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg373fooEv,_ZTv0_n16_N4gg373fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg373fooEv,_ZTv0_n12_N4gg373fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg37[];
+extern void _ZN4ee373fooEv();
+static VTBL_ENTRY _tg__ZTV4ee37__4gg37[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee37[0]),
+ (VTBL_ENTRY)&_ZN4ee373fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee373fooEv,_ZTv0_n12_N4ee373fooEv)();
+extern void ABISELECT(_ZThn24_N4ee373fooEv,_ZThn16_N4ee373fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa37__4ee37__4gg37[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee373fooEv,_ZTv0_n12_N4ee373fooEv),
+};
+extern void _ZN4ff373fooEv();
+static VTBL_ENTRY _tg__ZTV4ff37__4gg37[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff37[0]),
+ (VTBL_ENTRY)&_ZN4ff373fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff373fooEv,_ZTv0_n12_N4ff373fooEv)();
+extern void ABISELECT(_ZThn16_N4ff373fooEv,_ZThn12_N4ff373fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc37__4ff37__4gg37[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff37[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff373fooEv,_ZTv0_n12_N4ff373fooEv),
+};
+static VTT_ENTRY vtt_gg37[] = {
+ {&(_ZTV4gg37[5]), 5,19},
+ {&(_tg__ZTV4ee37__4gg37[3]), 3,4},
+ {&(_tg__ZTV4aa37__4ee37__4gg37[3]), 3,4},
+ {&(_ZTV4gg37[9]), 9,19},
+ {&(_ZTV4gg37[14]), 14,19},
+ {&(_ZTV4gg37[18]), 18,19},
+ {&(_tg__ZTV4ff37__4gg37[3]), 3,4},
+ {&(_tg__ZTV4cc37__4ff37__4gg37[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg37[];
+extern VTBL_ENTRY _ZTV4gg37[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg37[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff373fooEv,_ZTv0_n12_N4ff373fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff373fooEv,_ZThn12_N4ff373fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee373fooEv,_ZTv0_n12_N4ee373fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee373fooEv,_ZThn16_N4ee373fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg373fooEv,_ZTv0_n16_N4gg373fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg373fooEv,_ZThn24_N4gg373fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg373fooEv,_ZTv0_n12_N4gg373fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg373fooEv,_ZThn36_N4gg373fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg373fooEv,_ZThn16_N4gg373fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg37 = { "gg37", // class name
+ bases_gg37, 6,
+ &(vtc_gg37[0]), // expected_vtbl_contents
+ &(vtt_gg37[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg37),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg37),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg37),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names91,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa38 {
+ int a;
+ aa38(); // _ZN4aa38C1Ev
+ virtual void foo(); // _ZN4aa383fooEv
+ ~aa38(); // tgen
+};
+//SIG(-1 aa38) C1{ v1 Fi}
+
+
+ aa38 ::aa38(){ note_ctor("aa38", this);}
+void aa38 ::foo(){vfunc_called(this, "_ZN4aa383fooEv");}
+aa38 ::~aa38(){ note_dtor("aa38", this);} // tgen
+
+static void Test_aa38()
+{
+ extern Class_Descriptor cd_aa38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa38, buf);
+ aa38 *dp, &lv = *(dp=new (buf) aa38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa38)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa38.a");
+ test_class_info(&lv, &cd_aa38);
+ dp->~aa38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa38(Test_aa38, "aa38", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa38C1Ev();
+extern void _ZN4aa38D1Ev();
+Name_Map name_map_aa38[] = {
+ NSPAIR(_ZN4aa38C1Ev),
+ NSPAIR(_ZN4aa38D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa38[];
+extern void _ZN4aa383fooEv();
+static VTBL_ENTRY vtc_aa38[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa38[0]),
+ (VTBL_ENTRY)&_ZN4aa383fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa38[];
+extern VTBL_ENTRY _ZTV4aa38[];
+Class_Descriptor cd_aa38 = { "aa38", // class name
+ 0,0,//no base classes
+ &(vtc_aa38[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa38),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa38),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb38 {
+ int b;
+ bb38(); // _ZN4bb38C1Ev
+ virtual void foo(); // _ZN4bb383fooEv
+ ~bb38(); // tgen
+};
+//SIG(-1 bb38) C1{ v1 Fi}
+
+
+ bb38 ::bb38(){ note_ctor("bb38", this);}
+void bb38 ::foo(){vfunc_called(this, "_ZN4bb383fooEv");}
+bb38 ::~bb38(){ note_dtor("bb38", this);} // tgen
+
+static void Test_bb38()
+{
+ extern Class_Descriptor cd_bb38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb38, buf);
+ bb38 *dp, &lv = *(dp=new (buf) bb38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb38)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb38.b");
+ test_class_info(&lv, &cd_bb38);
+ dp->~bb38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb38(Test_bb38, "bb38", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb38C1Ev();
+extern void _ZN4bb38D1Ev();
+Name_Map name_map_bb38[] = {
+ NSPAIR(_ZN4bb38C1Ev),
+ NSPAIR(_ZN4bb38D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb38[];
+extern void _ZN4bb383fooEv();
+static VTBL_ENTRY vtc_bb38[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb38[0]),
+ (VTBL_ENTRY)&_ZN4bb383fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb38[];
+extern VTBL_ENTRY _ZTV4bb38[];
+Class_Descriptor cd_bb38 = { "bb38", // class name
+ 0,0,//no base classes
+ &(vtc_bb38[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb38),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb38),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc38 {
+ int c;
+ cc38(); // _ZN4cc38C1Ev
+ virtual void foo(); // _ZN4cc383fooEv
+ ~cc38(); // tgen
+};
+//SIG(-1 cc38) C1{ v1 Fi}
+
+
+ cc38 ::cc38(){ note_ctor("cc38", this);}
+void cc38 ::foo(){vfunc_called(this, "_ZN4cc383fooEv");}
+cc38 ::~cc38(){ note_dtor("cc38", this);} // tgen
+
+static void Test_cc38()
+{
+ extern Class_Descriptor cd_cc38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc38, buf);
+ cc38 *dp, &lv = *(dp=new (buf) cc38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc38)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc38.c");
+ test_class_info(&lv, &cd_cc38);
+ dp->~cc38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc38(Test_cc38, "cc38", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc38C1Ev();
+extern void _ZN4cc38D1Ev();
+Name_Map name_map_cc38[] = {
+ NSPAIR(_ZN4cc38C1Ev),
+ NSPAIR(_ZN4cc38D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc38[];
+extern void _ZN4cc383fooEv();
+static VTBL_ENTRY vtc_cc38[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc38[0]),
+ (VTBL_ENTRY)&_ZN4cc383fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc38[];
+extern VTBL_ENTRY _ZTV4cc38[];
+Class_Descriptor cd_cc38 = { "cc38", // class name
+ 0,0,//no base classes
+ &(vtc_cc38[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc38),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc38),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd38 {
+ int d;
+ dd38(); // _ZN4dd38C1Ev
+ virtual void foo(); // _ZN4dd383fooEv
+ ~dd38(); // tgen
+};
+//SIG(-1 dd38) C1{ v1 Fi}
+
+
+ dd38 ::dd38(){ note_ctor("dd38", this);}
+void dd38 ::foo(){vfunc_called(this, "_ZN4dd383fooEv");}
+dd38 ::~dd38(){ note_dtor("dd38", this);} // tgen
+
+static void Test_dd38()
+{
+ extern Class_Descriptor cd_dd38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd38, buf);
+ dd38 *dp, &lv = *(dp=new (buf) dd38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd38)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd38.d");
+ test_class_info(&lv, &cd_dd38);
+ dp->~dd38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd38(Test_dd38, "dd38", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd38C1Ev();
+extern void _ZN4dd38D1Ev();
+Name_Map name_map_dd38[] = {
+ NSPAIR(_ZN4dd38C1Ev),
+ NSPAIR(_ZN4dd38D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd38[];
+extern void _ZN4dd383fooEv();
+static VTBL_ENTRY vtc_dd38[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd38[0]),
+ (VTBL_ENTRY)&_ZN4dd383fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd38[];
+extern VTBL_ENTRY _ZTV4dd38[];
+Class_Descriptor cd_dd38 = { "dd38", // class name
+ 0,0,//no base classes
+ &(vtc_dd38[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd38),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd38),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee38 : aa38 , virtual bb38 {
+ int e;
+ ee38(const ABISELECT(__tsi64,int) *const *); // _ZN4ee38C2Ev
+ virtual void foo(); // _ZN4ee383fooEv
+ ~ee38(); // tgen
+ ee38(); // tgen
+};
+//SIG(-1 ee38) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee38 ::ee38(const ABISELECT(__tsi64,int) *const *){}
+void ee38 ::foo(){vfunc_called(this, "_ZN4ee383fooEv");}
+ee38 ::~ee38(){ note_dtor("ee38", this);} // tgen
+ee38 ::ee38(){ note_ctor("ee38", this);} // tgen
+
+static void Test_ee38()
+{
+ extern Class_Descriptor cd_ee38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee38, buf);
+ ee38 *dp, &lv = *(dp=new (buf) ee38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee38)");
+ check_base_class_offset(lv, (aa38*), 0, "ee38");
+ check_base_class_offset(lv, (bb38*), ABISELECT(16,12), "ee38");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee38.e");
+ test_class_info(&lv, &cd_ee38);
+ dp->~ee38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee38(Test_ee38, "ee38", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee38C1Ev();
+extern void _ZN4ee38D1Ev();
+Name_Map name_map_ee38[] = {
+ NSPAIR(_ZN4ee38C1Ev),
+ NSPAIR(_ZN4ee38D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa38;
+extern VTBL_ENTRY _ZTI4aa38[];
+extern VTBL_ENTRY _ZTV4aa38[];
+extern Class_Descriptor cd_bb38;
+extern VTBL_ENTRY _ZTI4bb38[];
+extern VTBL_ENTRY _ZTV4bb38[];
+static Base_Class bases_ee38[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa38, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb38, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee38[];
+extern void _ZN4ee383fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee383fooEv,_ZTv0_n12_N4ee383fooEv)();
+extern void ABISELECT(_ZThn16_N4ee383fooEv,_ZThn12_N4ee383fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee38[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee38[0]),
+ (VTBL_ENTRY)&_ZN4ee383fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee383fooEv,_ZTv0_n12_N4ee383fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee38[];
+static VTT_ENTRY vtt_ee38[] = {
+ {&(_ZTV4ee38[3]), 3,8},
+ {&(_ZTV4ee38[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee38[];
+extern VTBL_ENTRY _ZTV4ee38[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee38[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee383fooEv,_ZTv0_n12_N4ee383fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee383fooEv,_ZThn12_N4ee383fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee38 = { "ee38", // class name
+ bases_ee38, 2,
+ &(vtc_ee38[0]), // expected_vtbl_contents
+ &(vtt_ee38[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee38),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee38),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee38),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names92,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff38 : virtual cc38 , dd38 {
+ int f;
+ ff38(const ABISELECT(__tsi64,int) *const *); // _ZN4ff38C2Ev
+ virtual void foo(); // _ZN4ff383fooEv
+ ~ff38(); // tgen
+ ff38(); // tgen
+};
+//SIG(-1 ff38) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff38 ::ff38(const ABISELECT(__tsi64,int) *const *){}
+void ff38 ::foo(){vfunc_called(this, "_ZN4ff383fooEv");}
+ff38 ::~ff38(){ note_dtor("ff38", this);} // tgen
+ff38 ::ff38(){ note_ctor("ff38", this);} // tgen
+
+static void Test_ff38()
+{
+ extern Class_Descriptor cd_ff38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff38, buf);
+ ff38 *dp, &lv = *(dp=new (buf) ff38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff38)");
+ check_base_class_offset(lv, (cc38*), ABISELECT(16,12), "ff38");
+ check_base_class_offset(lv, (dd38*), 0, "ff38");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff38.f");
+ test_class_info(&lv, &cd_ff38);
+ dp->~ff38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff38(Test_ff38, "ff38", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff38C1Ev();
+extern void _ZN4ff38D1Ev();
+Name_Map name_map_ff38[] = {
+ NSPAIR(_ZN4ff38C1Ev),
+ NSPAIR(_ZN4ff38D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc38;
+extern VTBL_ENTRY _ZTI4cc38[];
+extern VTBL_ENTRY _ZTV4cc38[];
+extern Class_Descriptor cd_dd38;
+extern VTBL_ENTRY _ZTI4dd38[];
+extern VTBL_ENTRY _ZTV4dd38[];
+static Base_Class bases_ff38[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc38, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd38, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff38[];
+extern void _ZN4ff383fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff383fooEv,_ZTv0_n12_N4ff383fooEv)();
+extern void ABISELECT(_ZThn16_N4ff383fooEv,_ZThn12_N4ff383fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff38[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff38[0]),
+ (VTBL_ENTRY)&_ZN4ff383fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff383fooEv,_ZTv0_n12_N4ff383fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff38[];
+static VTT_ENTRY vtt_ff38[] = {
+ {&(_ZTV4ff38[3]), 3,8},
+ {&(_ZTV4ff38[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff38[];
+extern VTBL_ENTRY _ZTV4ff38[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff38[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff383fooEv,_ZTv0_n12_N4ff383fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff383fooEv,_ZThn12_N4ff383fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff38 = { "ff38", // class name
+ bases_ff38, 2,
+ &(vtc_ff38[0]), // expected_vtbl_contents
+ &(vtt_ff38[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff38),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff38),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff38),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names93,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg38 : ee38 , virtual ff38 {
+ int g;
+ gg38(const ABISELECT(__tsi64,int) *const *); // _ZN4gg38C2Ev
+ virtual void foo(); // _ZN4gg383fooEv
+ ~gg38(); // tgen
+ gg38(); // tgen
+};
+//SIG(1 gg38) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg38 ::gg38(const ABISELECT(__tsi64,int) *const *){}
+void gg38 ::foo(){vfunc_called(this, "_ZN4gg383fooEv");}
+gg38 ::~gg38(){ note_dtor("gg38", this);} // tgen
+gg38 ::gg38(){ note_ctor("gg38", this);} // tgen
+
+static void Test_gg38()
+{
+ extern Class_Descriptor cd_gg38;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg38, buf);
+ gg38 *dp, &lv = *(dp=new (buf) gg38());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg38)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg38)");
+ check_base_class_offset(lv, (aa38*)(ee38*), 0, "gg38");
+ check_base_class_offset(lv, (bb38*)(ee38*), ABISELECT(24,16), "gg38");
+ check_base_class_offset(lv, (ee38*), 0, "gg38");
+ check_base_class_offset(lv, (cc38*)(ff38*), ABISELECT(56,36), "gg38");
+ check_base_class_offset(lv, (dd38*)(ff38*), ABISELECT(40,24), "gg38");
+ check_base_class_offset(lv, (ff38*), ABISELECT(40,24), "gg38");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg38.g");
+ test_class_info(&lv, &cd_gg38);
+ dp->~gg38();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg38(Test_gg38, "gg38", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg38C1Ev();
+extern void _ZN4gg38D1Ev();
+Name_Map name_map_gg38[] = {
+ NSPAIR(_ZN4gg38C1Ev),
+ NSPAIR(_ZN4gg38D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa38;
+extern VTBL_ENTRY _ZTI4aa38[];
+extern VTBL_ENTRY _ZTV4aa38[];
+extern Class_Descriptor cd_bb38;
+extern VTBL_ENTRY _ZTI4bb38[];
+extern VTBL_ENTRY _ZTV4bb38[];
+extern Class_Descriptor cd_ee38;
+extern VTBL_ENTRY _ZTI4ee38[];
+extern VTBL_ENTRY _ZTV4ee38[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee38[];
+extern Class_Descriptor cd_cc38;
+extern VTBL_ENTRY _ZTI4cc38[];
+extern VTBL_ENTRY _ZTV4cc38[];
+extern Class_Descriptor cd_dd38;
+extern VTBL_ENTRY _ZTI4dd38[];
+extern VTBL_ENTRY _ZTV4dd38[];
+extern Class_Descriptor cd_ff38;
+extern VTBL_ENTRY _ZTI4ff38[];
+extern VTBL_ENTRY _ZTV4ff38[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff38[];
+static Base_Class bases_gg38[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa38, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb38, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee38, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc38, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd38, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff38, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg38[];
+extern void _ZN4gg383fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg383fooEv,_ZTv0_n12_N4gg383fooEv)();
+extern void ABISELECT(_ZThn24_N4gg383fooEv,_ZThn16_N4gg383fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg383fooEv,_ZTv0_n16_N4gg383fooEv)();
+extern void ABISELECT(_ZThn40_N4gg383fooEv,_ZThn24_N4gg383fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg383fooEv,_ZTv0_n12_N4gg383fooEv)();
+extern void ABISELECT(_ZThn56_N4gg383fooEv,_ZThn36_N4gg383fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg38[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg38[0]),
+ (VTBL_ENTRY)&_ZN4gg383fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg383fooEv,_ZTv0_n12_N4gg383fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg383fooEv,_ZTv0_n16_N4gg383fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg383fooEv,_ZTv0_n12_N4gg383fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg38[];
+extern void _ZN4ee383fooEv();
+static VTBL_ENTRY _tg__ZTV4ee38__4gg38[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee38[0]),
+ (VTBL_ENTRY)&_ZN4ee383fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee383fooEv,_ZTv0_n12_N4ee383fooEv)();
+extern void ABISELECT(_ZThn24_N4ee383fooEv,_ZThn16_N4ee383fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb38__4ee38__4gg38[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee383fooEv,_ZTv0_n12_N4ee383fooEv),
+};
+extern void _ZN4ff383fooEv();
+static VTBL_ENTRY _tg__ZTV4ff38__4gg38[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff38[0]),
+ (VTBL_ENTRY)&_ZN4ff383fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff383fooEv,_ZTv0_n12_N4ff383fooEv)();
+extern void ABISELECT(_ZThn16_N4ff383fooEv,_ZThn12_N4ff383fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc38__4ff38__4gg38[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff38[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff383fooEv,_ZTv0_n12_N4ff383fooEv),
+};
+static VTT_ENTRY vtt_gg38[] = {
+ {&(_ZTV4gg38[5]), 5,19},
+ {&(_tg__ZTV4ee38__4gg38[3]), 3,4},
+ {&(_tg__ZTV4bb38__4ee38__4gg38[3]), 3,4},
+ {&(_ZTV4gg38[9]), 9,19},
+ {&(_ZTV4gg38[14]), 14,19},
+ {&(_ZTV4gg38[18]), 18,19},
+ {&(_tg__ZTV4ff38__4gg38[3]), 3,4},
+ {&(_tg__ZTV4cc38__4ff38__4gg38[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg38[];
+extern VTBL_ENTRY _ZTV4gg38[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg38[];
+static VTBL_ENTRY alt_thunk_names94[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff383fooEv,_ZTv0_n12_N4ff383fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff383fooEv,_ZThn12_N4ff383fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee383fooEv,_ZTv0_n12_N4ee383fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee383fooEv,_ZThn16_N4ee383fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg383fooEv,_ZTv0_n16_N4gg383fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg383fooEv,_ZThn24_N4gg383fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg383fooEv,_ZTv0_n12_N4gg383fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg383fooEv,_ZThn36_N4gg383fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg383fooEv,_ZThn16_N4gg383fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg38 = { "gg38", // class name
+ bases_gg38, 6,
+ &(vtc_gg38[0]), // expected_vtbl_contents
+ &(vtt_gg38[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg38),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg38),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg38),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names94,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa39 {
+ int a;
+ aa39(); // _ZN4aa39C1Ev
+ virtual void foo(); // _ZN4aa393fooEv
+ ~aa39(); // tgen
+};
+//SIG(-1 aa39) C1{ v1 Fi}
+
+
+ aa39 ::aa39(){ note_ctor("aa39", this);}
+void aa39 ::foo(){vfunc_called(this, "_ZN4aa393fooEv");}
+aa39 ::~aa39(){ note_dtor("aa39", this);} // tgen
+
+static void Test_aa39()
+{
+ extern Class_Descriptor cd_aa39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa39, buf);
+ aa39 *dp, &lv = *(dp=new (buf) aa39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa39)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa39.a");
+ test_class_info(&lv, &cd_aa39);
+ dp->~aa39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa39(Test_aa39, "aa39", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa39C1Ev();
+extern void _ZN4aa39D1Ev();
+Name_Map name_map_aa39[] = {
+ NSPAIR(_ZN4aa39C1Ev),
+ NSPAIR(_ZN4aa39D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa39[];
+extern void _ZN4aa393fooEv();
+static VTBL_ENTRY vtc_aa39[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa39[0]),
+ (VTBL_ENTRY)&_ZN4aa393fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa39[];
+extern VTBL_ENTRY _ZTV4aa39[];
+Class_Descriptor cd_aa39 = { "aa39", // class name
+ 0,0,//no base classes
+ &(vtc_aa39[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa39),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa39),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb39 {
+ int b;
+ bb39(); // _ZN4bb39C1Ev
+ virtual void foo(); // _ZN4bb393fooEv
+ ~bb39(); // tgen
+};
+//SIG(-1 bb39) C1{ v1 Fi}
+
+
+ bb39 ::bb39(){ note_ctor("bb39", this);}
+void bb39 ::foo(){vfunc_called(this, "_ZN4bb393fooEv");}
+bb39 ::~bb39(){ note_dtor("bb39", this);} // tgen
+
+static void Test_bb39()
+{
+ extern Class_Descriptor cd_bb39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb39, buf);
+ bb39 *dp, &lv = *(dp=new (buf) bb39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb39)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb39.b");
+ test_class_info(&lv, &cd_bb39);
+ dp->~bb39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb39(Test_bb39, "bb39", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb39C1Ev();
+extern void _ZN4bb39D1Ev();
+Name_Map name_map_bb39[] = {
+ NSPAIR(_ZN4bb39C1Ev),
+ NSPAIR(_ZN4bb39D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb39[];
+extern void _ZN4bb393fooEv();
+static VTBL_ENTRY vtc_bb39[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb39[0]),
+ (VTBL_ENTRY)&_ZN4bb393fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb39[];
+extern VTBL_ENTRY _ZTV4bb39[];
+Class_Descriptor cd_bb39 = { "bb39", // class name
+ 0,0,//no base classes
+ &(vtc_bb39[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb39),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb39),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc39 {
+ int c;
+ cc39(); // _ZN4cc39C1Ev
+ virtual void foo(); // _ZN4cc393fooEv
+ ~cc39(); // tgen
+};
+//SIG(-1 cc39) C1{ v1 Fi}
+
+
+ cc39 ::cc39(){ note_ctor("cc39", this);}
+void cc39 ::foo(){vfunc_called(this, "_ZN4cc393fooEv");}
+cc39 ::~cc39(){ note_dtor("cc39", this);} // tgen
+
+static void Test_cc39()
+{
+ extern Class_Descriptor cd_cc39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc39, buf);
+ cc39 *dp, &lv = *(dp=new (buf) cc39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc39)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc39.c");
+ test_class_info(&lv, &cd_cc39);
+ dp->~cc39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc39(Test_cc39, "cc39", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc39C1Ev();
+extern void _ZN4cc39D1Ev();
+Name_Map name_map_cc39[] = {
+ NSPAIR(_ZN4cc39C1Ev),
+ NSPAIR(_ZN4cc39D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc39[];
+extern void _ZN4cc393fooEv();
+static VTBL_ENTRY vtc_cc39[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc39[0]),
+ (VTBL_ENTRY)&_ZN4cc393fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc39[];
+extern VTBL_ENTRY _ZTV4cc39[];
+Class_Descriptor cd_cc39 = { "cc39", // class name
+ 0,0,//no base classes
+ &(vtc_cc39[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc39),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc39),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd39 {
+ int d;
+ dd39(); // _ZN4dd39C1Ev
+ virtual void foo(); // _ZN4dd393fooEv
+ ~dd39(); // tgen
+};
+//SIG(-1 dd39) C1{ v1 Fi}
+
+
+ dd39 ::dd39(){ note_ctor("dd39", this);}
+void dd39 ::foo(){vfunc_called(this, "_ZN4dd393fooEv");}
+dd39 ::~dd39(){ note_dtor("dd39", this);} // tgen
+
+static void Test_dd39()
+{
+ extern Class_Descriptor cd_dd39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd39, buf);
+ dd39 *dp, &lv = *(dp=new (buf) dd39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd39)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd39.d");
+ test_class_info(&lv, &cd_dd39);
+ dp->~dd39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd39(Test_dd39, "dd39", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd39C1Ev();
+extern void _ZN4dd39D1Ev();
+Name_Map name_map_dd39[] = {
+ NSPAIR(_ZN4dd39C1Ev),
+ NSPAIR(_ZN4dd39D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd39[];
+extern void _ZN4dd393fooEv();
+static VTBL_ENTRY vtc_dd39[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd39[0]),
+ (VTBL_ENTRY)&_ZN4dd393fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd39[];
+extern VTBL_ENTRY _ZTV4dd39[];
+Class_Descriptor cd_dd39 = { "dd39", // class name
+ 0,0,//no base classes
+ &(vtc_dd39[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd39),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd39),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee39 : virtual aa39 , virtual bb39 {
+ int e;
+ ee39(const ABISELECT(__tsi64,int) *const *); // _ZN4ee39C2Ev
+ virtual void foo(); // _ZN4ee393fooEv
+ ~ee39(); // tgen
+ ee39(); // tgen
+};
+//SIG(-1 ee39) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee39 ::ee39(const ABISELECT(__tsi64,int) *const *){}
+void ee39 ::foo(){vfunc_called(this, "_ZN4ee393fooEv");}
+ee39 ::~ee39(){ note_dtor("ee39", this);} // tgen
+ee39 ::ee39(){ note_ctor("ee39", this);} // tgen
+
+static void Test_ee39()
+{
+ extern Class_Descriptor cd_ee39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee39, buf);
+ ee39 *dp, &lv = *(dp=new (buf) ee39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee39)");
+ check_base_class_offset(lv, (aa39*), ABISELECT(16,8), "ee39");
+ check_base_class_offset(lv, (bb39*), ABISELECT(32,16), "ee39");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee39.e");
+ test_class_info(&lv, &cd_ee39);
+ dp->~ee39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee39(Test_ee39, "ee39", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee39C1Ev();
+extern void _ZN4ee39D1Ev();
+Name_Map name_map_ee39[] = {
+ NSPAIR(_ZN4ee39C1Ev),
+ NSPAIR(_ZN4ee39D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa39;
+extern VTBL_ENTRY _ZTI4aa39[];
+extern VTBL_ENTRY _ZTV4aa39[];
+extern Class_Descriptor cd_bb39;
+extern VTBL_ENTRY _ZTI4bb39[];
+extern VTBL_ENTRY _ZTV4bb39[];
+static Base_Class bases_ee39[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa39, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb39, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee39[];
+extern void _ZN4ee393fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv)();
+extern void ABISELECT(_ZThn16_N4ee393fooEv,_ZThn8_N4ee393fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv)();
+extern void ABISELECT(_ZThn32_N4ee393fooEv,_ZThn16_N4ee393fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee39[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee39[0]),
+ (VTBL_ENTRY)&_ZN4ee393fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee39[];
+static VTT_ENTRY vtt_ee39[] = {
+ {&(_ZTV4ee39[4]), 4,13},
+ {&(_ZTV4ee39[8]), 8,13},
+ {&(_ZTV4ee39[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee39[];
+extern VTBL_ENTRY _ZTV4ee39[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee39[];
+static VTBL_ENTRY alt_thunk_names95[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee393fooEv,_ZThn16_N4ee393fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee393fooEv,_ZThn8_N4ee393fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee39 = { "ee39", // class name
+ bases_ee39, 2,
+ &(vtc_ee39[0]), // expected_vtbl_contents
+ &(vtt_ee39[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee39),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee39),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee39),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names95,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff39 : virtual cc39 , dd39 {
+ int f;
+ ff39(const ABISELECT(__tsi64,int) *const *); // _ZN4ff39C2Ev
+ virtual void foo(); // _ZN4ff393fooEv
+ ~ff39(); // tgen
+ ff39(); // tgen
+};
+//SIG(-1 ff39) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff39 ::ff39(const ABISELECT(__tsi64,int) *const *){}
+void ff39 ::foo(){vfunc_called(this, "_ZN4ff393fooEv");}
+ff39 ::~ff39(){ note_dtor("ff39", this);} // tgen
+ff39 ::ff39(){ note_ctor("ff39", this);} // tgen
+
+static void Test_ff39()
+{
+ extern Class_Descriptor cd_ff39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff39, buf);
+ ff39 *dp, &lv = *(dp=new (buf) ff39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff39)");
+ check_base_class_offset(lv, (cc39*), ABISELECT(16,12), "ff39");
+ check_base_class_offset(lv, (dd39*), 0, "ff39");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff39.f");
+ test_class_info(&lv, &cd_ff39);
+ dp->~ff39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff39(Test_ff39, "ff39", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff39C1Ev();
+extern void _ZN4ff39D1Ev();
+Name_Map name_map_ff39[] = {
+ NSPAIR(_ZN4ff39C1Ev),
+ NSPAIR(_ZN4ff39D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc39;
+extern VTBL_ENTRY _ZTI4cc39[];
+extern VTBL_ENTRY _ZTV4cc39[];
+extern Class_Descriptor cd_dd39;
+extern VTBL_ENTRY _ZTI4dd39[];
+extern VTBL_ENTRY _ZTV4dd39[];
+static Base_Class bases_ff39[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc39, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd39, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff39[];
+extern void _ZN4ff393fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff393fooEv,_ZTv0_n12_N4ff393fooEv)();
+extern void ABISELECT(_ZThn16_N4ff393fooEv,_ZThn12_N4ff393fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff39[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff39[0]),
+ (VTBL_ENTRY)&_ZN4ff393fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff393fooEv,_ZTv0_n12_N4ff393fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff39[];
+static VTT_ENTRY vtt_ff39[] = {
+ {&(_ZTV4ff39[3]), 3,8},
+ {&(_ZTV4ff39[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff39[];
+extern VTBL_ENTRY _ZTV4ff39[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff39[];
+static VTBL_ENTRY alt_thunk_names96[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff393fooEv,_ZTv0_n12_N4ff393fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff393fooEv,_ZThn12_N4ff393fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff39 = { "ff39", // class name
+ bases_ff39, 2,
+ &(vtc_ff39[0]), // expected_vtbl_contents
+ &(vtt_ff39[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff39),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff39),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff39),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names96,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg39 : ee39 , virtual ff39 {
+ int g;
+ gg39(const ABISELECT(__tsi64,int) *const *); // _ZN4gg39C2Ev
+ virtual void foo(); // _ZN4gg393fooEv
+ ~gg39(); // tgen
+ gg39(); // tgen
+};
+//SIG(1 gg39) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg39 ::gg39(const ABISELECT(__tsi64,int) *const *){}
+void gg39 ::foo(){vfunc_called(this, "_ZN4gg393fooEv");}
+gg39 ::~gg39(){ note_dtor("gg39", this);} // tgen
+gg39 ::gg39(){ note_ctor("gg39", this);} // tgen
+
+static void Test_gg39()
+{
+ extern Class_Descriptor cd_gg39;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg39, buf);
+ gg39 *dp, &lv = *(dp=new (buf) gg39());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg39)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg39)");
+ check_base_class_offset(lv, (aa39*)(ee39*), ABISELECT(16,12), "gg39");
+ check_base_class_offset(lv, (bb39*)(ee39*), ABISELECT(32,20), "gg39");
+ check_base_class_offset(lv, (ee39*), 0, "gg39");
+ check_base_class_offset(lv, (cc39*)(ff39*), ABISELECT(64,40), "gg39");
+ check_base_class_offset(lv, (dd39*)(ff39*), ABISELECT(48,28), "gg39");
+ check_base_class_offset(lv, (ff39*), ABISELECT(48,28), "gg39");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg39.g");
+ test_class_info(&lv, &cd_gg39);
+ dp->~gg39();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg39(Test_gg39, "gg39", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg39C1Ev();
+extern void _ZN4gg39D1Ev();
+Name_Map name_map_gg39[] = {
+ NSPAIR(_ZN4gg39C1Ev),
+ NSPAIR(_ZN4gg39D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa39;
+extern VTBL_ENTRY _ZTI4aa39[];
+extern VTBL_ENTRY _ZTV4aa39[];
+extern Class_Descriptor cd_bb39;
+extern VTBL_ENTRY _ZTI4bb39[];
+extern VTBL_ENTRY _ZTV4bb39[];
+extern Class_Descriptor cd_ee39;
+extern VTBL_ENTRY _ZTI4ee39[];
+extern VTBL_ENTRY _ZTV4ee39[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee39[];
+extern Class_Descriptor cd_cc39;
+extern VTBL_ENTRY _ZTI4cc39[];
+extern VTBL_ENTRY _ZTV4cc39[];
+extern Class_Descriptor cd_dd39;
+extern VTBL_ENTRY _ZTI4dd39[];
+extern VTBL_ENTRY _ZTV4dd39[];
+extern Class_Descriptor cd_ff39;
+extern VTBL_ENTRY _ZTI4ff39[];
+extern VTBL_ENTRY _ZTV4ff39[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff39[];
+static Base_Class bases_gg39[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa39, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb39, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee39, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc39, ABISELECT(64,40), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd39, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff39, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg39[];
+extern void _ZN4gg393fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv)();
+extern void ABISELECT(_ZThn16_N4gg393fooEv,_ZThn12_N4gg393fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv)();
+extern void ABISELECT(_ZThn32_N4gg393fooEv,_ZThn20_N4gg393fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg393fooEv,_ZTv0_n16_N4gg393fooEv)();
+extern void ABISELECT(_ZThn48_N4gg393fooEv,_ZThn28_N4gg393fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv)();
+extern void ABISELECT(_ZThn64_N4gg393fooEv,_ZThn40_N4gg393fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg39[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg39[0]),
+ (VTBL_ENTRY)&_ZN4gg393fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg393fooEv,_ZTv0_n16_N4gg393fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg39[];
+extern void _ZN4ee393fooEv();
+static VTBL_ENTRY _tg__ZTV4ee39__4gg39[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee39[0]),
+ (VTBL_ENTRY)&_ZN4ee393fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv)();
+extern void ABISELECT(_ZThn16_N4ee393fooEv,_ZThn12_N4ee393fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa39__4ee39__4gg39[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv)();
+extern void ABISELECT(_ZThn32_N4ee393fooEv,_ZThn20_N4ee393fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb39__4ee39__4gg39[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ee39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv),
+};
+extern void _ZN4ff393fooEv();
+static VTBL_ENTRY _tg__ZTV4ff39__4gg39[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff39[0]),
+ (VTBL_ENTRY)&_ZN4ff393fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff393fooEv,_ZTv0_n12_N4ff393fooEv)();
+extern void ABISELECT(_ZThn16_N4ff393fooEv,_ZThn12_N4ff393fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc39__4ff39__4gg39[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff39[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff393fooEv,_ZTv0_n12_N4ff393fooEv),
+};
+static VTT_ENTRY vtt_gg39[] = {
+ {&(_ZTV4gg39[6]), 6,24},
+ {&(_tg__ZTV4ee39__4gg39[4]), 4,5},
+ {&(_tg__ZTV4aa39__4ee39__4gg39[3]), 3,4},
+ {&(_tg__ZTV4bb39__4ee39__4gg39[3]), 3,4},
+ {&(_ZTV4gg39[10]), 10,24},
+ {&(_ZTV4gg39[14]), 14,24},
+ {&(_ZTV4gg39[19]), 19,24},
+ {&(_ZTV4gg39[23]), 23,24},
+ {&(_tg__ZTV4ff39__4gg39[3]), 3,4},
+ {&(_tg__ZTV4cc39__4ff39__4gg39[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg39[];
+extern VTBL_ENTRY _ZTV4gg39[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg39[];
+static VTBL_ENTRY alt_thunk_names97[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff393fooEv,_ZTv0_n12_N4ff393fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff393fooEv,_ZThn12_N4ff393fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee393fooEv,_ZTv0_n12_N4ee393fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee393fooEv,_ZThn20_N4ee393fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee393fooEv,_ZThn12_N4ee393fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg393fooEv,_ZTv0_n16_N4gg393fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg393fooEv,_ZThn28_N4gg393fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg393fooEv,_ZTv0_n12_N4gg393fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg393fooEv,_ZThn40_N4gg393fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg393fooEv,_ZThn20_N4gg393fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg393fooEv,_ZThn12_N4gg393fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg39 = { "gg39", // class name
+ bases_gg39, 6,
+ &(vtc_gg39[0]), // expected_vtbl_contents
+ &(vtt_gg39[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg39),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg39),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg39),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names97,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa40 {
+ int a;
+ aa40(); // _ZN4aa40C1Ev
+ virtual void foo(); // _ZN4aa403fooEv
+ ~aa40(); // tgen
+};
+//SIG(-1 aa40) C1{ v1 Fi}
+
+
+ aa40 ::aa40(){ note_ctor("aa40", this);}
+void aa40 ::foo(){vfunc_called(this, "_ZN4aa403fooEv");}
+aa40 ::~aa40(){ note_dtor("aa40", this);} // tgen
+
+static void Test_aa40()
+{
+ extern Class_Descriptor cd_aa40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa40, buf);
+ aa40 *dp, &lv = *(dp=new (buf) aa40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa40)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa40.a");
+ test_class_info(&lv, &cd_aa40);
+ dp->~aa40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa40(Test_aa40, "aa40", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa40C1Ev();
+extern void _ZN4aa40D1Ev();
+Name_Map name_map_aa40[] = {
+ NSPAIR(_ZN4aa40C1Ev),
+ NSPAIR(_ZN4aa40D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa40[];
+extern void _ZN4aa403fooEv();
+static VTBL_ENTRY vtc_aa40[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa40[0]),
+ (VTBL_ENTRY)&_ZN4aa403fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa40[];
+extern VTBL_ENTRY _ZTV4aa40[];
+Class_Descriptor cd_aa40 = { "aa40", // class name
+ 0,0,//no base classes
+ &(vtc_aa40[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa40),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa40),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb40 {
+ int b;
+ bb40(); // _ZN4bb40C1Ev
+ virtual void foo(); // _ZN4bb403fooEv
+ ~bb40(); // tgen
+};
+//SIG(-1 bb40) C1{ v1 Fi}
+
+
+ bb40 ::bb40(){ note_ctor("bb40", this);}
+void bb40 ::foo(){vfunc_called(this, "_ZN4bb403fooEv");}
+bb40 ::~bb40(){ note_dtor("bb40", this);} // tgen
+
+static void Test_bb40()
+{
+ extern Class_Descriptor cd_bb40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb40, buf);
+ bb40 *dp, &lv = *(dp=new (buf) bb40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb40)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb40.b");
+ test_class_info(&lv, &cd_bb40);
+ dp->~bb40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb40(Test_bb40, "bb40", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb40C1Ev();
+extern void _ZN4bb40D1Ev();
+Name_Map name_map_bb40[] = {
+ NSPAIR(_ZN4bb40C1Ev),
+ NSPAIR(_ZN4bb40D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb40[];
+extern void _ZN4bb403fooEv();
+static VTBL_ENTRY vtc_bb40[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb40[0]),
+ (VTBL_ENTRY)&_ZN4bb403fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb40[];
+extern VTBL_ENTRY _ZTV4bb40[];
+Class_Descriptor cd_bb40 = { "bb40", // class name
+ 0,0,//no base classes
+ &(vtc_bb40[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb40),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb40),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc40 {
+ int c;
+ cc40(); // _ZN4cc40C1Ev
+ virtual void foo(); // _ZN4cc403fooEv
+ ~cc40(); // tgen
+};
+//SIG(-1 cc40) C1{ v1 Fi}
+
+
+ cc40 ::cc40(){ note_ctor("cc40", this);}
+void cc40 ::foo(){vfunc_called(this, "_ZN4cc403fooEv");}
+cc40 ::~cc40(){ note_dtor("cc40", this);} // tgen
+
+static void Test_cc40()
+{
+ extern Class_Descriptor cd_cc40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc40, buf);
+ cc40 *dp, &lv = *(dp=new (buf) cc40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc40)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc40.c");
+ test_class_info(&lv, &cd_cc40);
+ dp->~cc40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc40(Test_cc40, "cc40", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc40C1Ev();
+extern void _ZN4cc40D1Ev();
+Name_Map name_map_cc40[] = {
+ NSPAIR(_ZN4cc40C1Ev),
+ NSPAIR(_ZN4cc40D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc40[];
+extern void _ZN4cc403fooEv();
+static VTBL_ENTRY vtc_cc40[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc40[0]),
+ (VTBL_ENTRY)&_ZN4cc403fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc40[];
+extern VTBL_ENTRY _ZTV4cc40[];
+Class_Descriptor cd_cc40 = { "cc40", // class name
+ 0,0,//no base classes
+ &(vtc_cc40[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc40),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc40),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd40 {
+ int d;
+ dd40(); // _ZN4dd40C1Ev
+ virtual void foo(); // _ZN4dd403fooEv
+ ~dd40(); // tgen
+};
+//SIG(-1 dd40) C1{ v1 Fi}
+
+
+ dd40 ::dd40(){ note_ctor("dd40", this);}
+void dd40 ::foo(){vfunc_called(this, "_ZN4dd403fooEv");}
+dd40 ::~dd40(){ note_dtor("dd40", this);} // tgen
+
+static void Test_dd40()
+{
+ extern Class_Descriptor cd_dd40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd40, buf);
+ dd40 *dp, &lv = *(dp=new (buf) dd40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd40)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd40.d");
+ test_class_info(&lv, &cd_dd40);
+ dp->~dd40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd40(Test_dd40, "dd40", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd40C1Ev();
+extern void _ZN4dd40D1Ev();
+Name_Map name_map_dd40[] = {
+ NSPAIR(_ZN4dd40C1Ev),
+ NSPAIR(_ZN4dd40D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd40[];
+extern void _ZN4dd403fooEv();
+static VTBL_ENTRY vtc_dd40[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd40[0]),
+ (VTBL_ENTRY)&_ZN4dd403fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd40[];
+extern VTBL_ENTRY _ZTV4dd40[];
+Class_Descriptor cd_dd40 = { "dd40", // class name
+ 0,0,//no base classes
+ &(vtc_dd40[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd40),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd40),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40 : aa40 , bb40 {
+ int e;
+ ee40(); // _ZN4ee40C1Ev
+ virtual void foo(); // _ZN4ee403fooEv
+ ~ee40(); // tgen
+};
+//SIG(-1 ee40) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee40 ::ee40(){ note_ctor("ee40", this);}
+void ee40 ::foo(){vfunc_called(this, "_ZN4ee403fooEv");}
+ee40 ::~ee40(){ note_dtor("ee40", this);} // tgen
+
+static void Test_ee40()
+{
+ extern Class_Descriptor cd_ee40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee40, buf);
+ ee40 *dp, &lv = *(dp=new (buf) ee40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40)");
+ check_base_class_offset(lv, (aa40*), 0, "ee40");
+ check_base_class_offset(lv, (bb40*), ABISELECT(16,8), "ee40");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee40.e");
+ test_class_info(&lv, &cd_ee40);
+ dp->~ee40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40(Test_ee40, "ee40", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee40C1Ev();
+extern void _ZN4ee40D1Ev();
+Name_Map name_map_ee40[] = {
+ NSPAIR(_ZN4ee40C1Ev),
+ NSPAIR(_ZN4ee40D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa40;
+extern VTBL_ENTRY _ZTI4aa40[];
+extern VTBL_ENTRY _ZTV4aa40[];
+extern Class_Descriptor cd_bb40;
+extern VTBL_ENTRY _ZTI4bb40[];
+extern VTBL_ENTRY _ZTV4bb40[];
+static Base_Class bases_ee40[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa40, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb40, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee40[];
+extern void _ZN4ee403fooEv();
+extern void ABISELECT(_ZThn16_N4ee403fooEv,_ZThn8_N4ee403fooEv)();
+static VTBL_ENTRY vtc_ee40[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee40[0]),
+ (VTBL_ENTRY)&_ZN4ee403fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee40[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee403fooEv,_ZThn8_N4ee403fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee40[];
+extern VTBL_ENTRY _ZTV4ee40[];
+Class_Descriptor cd_ee40 = { "ee40", // class name
+ bases_ee40, 2,
+ &(vtc_ee40[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee40),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee40),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff40 : cc40 , virtual dd40 {
+ int f;
+ ff40(const ABISELECT(__tsi64,int) *const *); // _ZN4ff40C2Ev
+ virtual void foo(); // _ZN4ff403fooEv
+ ~ff40(); // tgen
+ ff40(); // tgen
+};
+//SIG(-1 ff40) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff40 ::ff40(const ABISELECT(__tsi64,int) *const *){}
+void ff40 ::foo(){vfunc_called(this, "_ZN4ff403fooEv");}
+ff40 ::~ff40(){ note_dtor("ff40", this);} // tgen
+ff40 ::ff40(){ note_ctor("ff40", this);} // tgen
+
+static void Test_ff40()
+{
+ extern Class_Descriptor cd_ff40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff40, buf);
+ ff40 *dp, &lv = *(dp=new (buf) ff40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff40)");
+ check_base_class_offset(lv, (cc40*), 0, "ff40");
+ check_base_class_offset(lv, (dd40*), ABISELECT(16,12), "ff40");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff40.f");
+ test_class_info(&lv, &cd_ff40);
+ dp->~ff40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff40(Test_ff40, "ff40", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff40C1Ev();
+extern void _ZN4ff40D1Ev();
+Name_Map name_map_ff40[] = {
+ NSPAIR(_ZN4ff40C1Ev),
+ NSPAIR(_ZN4ff40D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc40;
+extern VTBL_ENTRY _ZTI4cc40[];
+extern VTBL_ENTRY _ZTV4cc40[];
+extern Class_Descriptor cd_dd40;
+extern VTBL_ENTRY _ZTI4dd40[];
+extern VTBL_ENTRY _ZTV4dd40[];
+static Base_Class bases_ff40[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc40, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd40, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff40[];
+extern void _ZN4ff403fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff403fooEv,_ZTv0_n12_N4ff403fooEv)();
+extern void ABISELECT(_ZThn16_N4ff403fooEv,_ZThn12_N4ff403fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff40[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff40[0]),
+ (VTBL_ENTRY)&_ZN4ff403fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff40[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff403fooEv,_ZTv0_n12_N4ff403fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff40[];
+static VTT_ENTRY vtt_ff40[] = {
+ {&(_ZTV4ff40[3]), 3,8},
+ {&(_ZTV4ff40[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff40[];
+extern VTBL_ENTRY _ZTV4ff40[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff40[];
+static VTBL_ENTRY alt_thunk_names98[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff403fooEv,_ZTv0_n12_N4ff403fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff403fooEv,_ZThn12_N4ff403fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff40 = { "ff40", // class name
+ bases_ff40, 2,
+ &(vtc_ff40[0]), // expected_vtbl_contents
+ &(vtt_ff40[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff40),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff40),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff40),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names98,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg40 : ee40 , virtual ff40 {
+ int g;
+ gg40(const ABISELECT(__tsi64,int) *const *); // _ZN4gg40C2Ev
+ virtual void foo(); // _ZN4gg403fooEv
+ ~gg40(); // tgen
+ gg40(); // tgen
+};
+//SIG(1 gg40) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg40 ::gg40(const ABISELECT(__tsi64,int) *const *){}
+void gg40 ::foo(){vfunc_called(this, "_ZN4gg403fooEv");}
+gg40 ::~gg40(){ note_dtor("gg40", this);} // tgen
+gg40 ::gg40(){ note_ctor("gg40", this);} // tgen
+
+static void Test_gg40()
+{
+ extern Class_Descriptor cd_gg40;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg40, buf);
+ gg40 *dp, &lv = *(dp=new (buf) gg40());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg40)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg40)");
+ check_base_class_offset(lv, (aa40*)(ee40*), 0, "gg40");
+ check_base_class_offset(lv, (bb40*)(ee40*), ABISELECT(16,8), "gg40");
+ check_base_class_offset(lv, (ee40*), 0, "gg40");
+ check_base_class_offset(lv, (cc40*)(ff40*), ABISELECT(40,24), "gg40");
+ check_base_class_offset(lv, (dd40*)(ff40*), ABISELECT(56,36), "gg40");
+ check_base_class_offset(lv, (ff40*), ABISELECT(40,24), "gg40");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg40.g");
+ test_class_info(&lv, &cd_gg40);
+ dp->~gg40();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg40(Test_gg40, "gg40", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg40C1Ev();
+extern void _ZN4gg40D1Ev();
+Name_Map name_map_gg40[] = {
+ NSPAIR(_ZN4gg40C1Ev),
+ NSPAIR(_ZN4gg40D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa40;
+extern VTBL_ENTRY _ZTI4aa40[];
+extern VTBL_ENTRY _ZTV4aa40[];
+extern Class_Descriptor cd_bb40;
+extern VTBL_ENTRY _ZTI4bb40[];
+extern VTBL_ENTRY _ZTV4bb40[];
+extern Class_Descriptor cd_ee40;
+extern VTBL_ENTRY _ZTI4ee40[];
+extern VTBL_ENTRY _ZTV4ee40[];
+extern Class_Descriptor cd_cc40;
+extern VTBL_ENTRY _ZTI4cc40[];
+extern VTBL_ENTRY _ZTV4cc40[];
+extern Class_Descriptor cd_dd40;
+extern VTBL_ENTRY _ZTI4dd40[];
+extern VTBL_ENTRY _ZTV4dd40[];
+extern Class_Descriptor cd_ff40;
+extern VTBL_ENTRY _ZTI4ff40[];
+extern VTBL_ENTRY _ZTV4ff40[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff40[];
+static Base_Class bases_gg40[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa40, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb40, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee40, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc40, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd40, ABISELECT(56,36), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff40, ABISELECT(40,24), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg40[];
+extern void _ZN4gg403fooEv();
+extern void ABISELECT(_ZThn16_N4gg403fooEv,_ZThn8_N4gg403fooEv)();
+extern void ABISELECT(_ZTv0_n32_N4gg403fooEv,_ZTv0_n16_N4gg403fooEv)();
+extern void ABISELECT(_ZThn40_N4gg403fooEv,_ZThn24_N4gg403fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg403fooEv,_ZTv0_n12_N4gg403fooEv)();
+extern void ABISELECT(_ZThn56_N4gg403fooEv,_ZThn36_N4gg403fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg40[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg40[0]),
+ (VTBL_ENTRY)&_ZN4gg403fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg40[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg403fooEv,_ZThn8_N4gg403fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg40[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg403fooEv,_ZTv0_n16_N4gg403fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg40[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg403fooEv,_ZTv0_n12_N4gg403fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg40[];
+extern void _ZN4ff403fooEv();
+static VTBL_ENTRY _tg__ZTV4ff40__4gg40[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff40[0]),
+ (VTBL_ENTRY)&_ZN4ff403fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff403fooEv,_ZTv0_n12_N4ff403fooEv)();
+extern void ABISELECT(_ZThn16_N4ff403fooEv,_ZThn12_N4ff403fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd40__4ff40__4gg40[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff40[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff403fooEv,_ZTv0_n12_N4ff403fooEv),
+};
+static VTT_ENTRY vtt_gg40[] = {
+ {&(_ZTV4gg40[4]), 4,17},
+ {&(_ZTV4gg40[12]), 12,17},
+ {&(_ZTV4gg40[16]), 16,17},
+ {&(_tg__ZTV4ff40__4gg40[3]), 3,4},
+ {&(_tg__ZTV4dd40__4ff40__4gg40[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg40[];
+extern VTBL_ENTRY _ZTV4gg40[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg40[];
+static VTBL_ENTRY alt_thunk_names99[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff403fooEv,_ZTv0_n12_N4ff403fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff403fooEv,_ZThn12_N4ff403fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg403fooEv,_ZTv0_n12_N4gg403fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg403fooEv,_ZThn36_N4gg403fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg403fooEv,_ZTv0_n16_N4gg403fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg403fooEv,_ZThn24_N4gg403fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg40 = { "gg40", // class name
+ bases_gg40, 6,
+ &(vtc_gg40[0]), // expected_vtbl_contents
+ &(vtt_gg40[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg40),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg40),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg40),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names99,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa41 {
+ int a;
+ aa41(); // _ZN4aa41C1Ev
+ virtual void foo(); // _ZN4aa413fooEv
+ ~aa41(); // tgen
+};
+//SIG(-1 aa41) C1{ v1 Fi}
+
+
+ aa41 ::aa41(){ note_ctor("aa41", this);}
+void aa41 ::foo(){vfunc_called(this, "_ZN4aa413fooEv");}
+aa41 ::~aa41(){ note_dtor("aa41", this);} // tgen
+
+static void Test_aa41()
+{
+ extern Class_Descriptor cd_aa41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa41, buf);
+ aa41 *dp, &lv = *(dp=new (buf) aa41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa41)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa41.a");
+ test_class_info(&lv, &cd_aa41);
+ dp->~aa41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa41(Test_aa41, "aa41", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa41C1Ev();
+extern void _ZN4aa41D1Ev();
+Name_Map name_map_aa41[] = {
+ NSPAIR(_ZN4aa41C1Ev),
+ NSPAIR(_ZN4aa41D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa41[];
+extern void _ZN4aa413fooEv();
+static VTBL_ENTRY vtc_aa41[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa41[0]),
+ (VTBL_ENTRY)&_ZN4aa413fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa41[];
+extern VTBL_ENTRY _ZTV4aa41[];
+Class_Descriptor cd_aa41 = { "aa41", // class name
+ 0,0,//no base classes
+ &(vtc_aa41[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa41),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa41),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb41 {
+ int b;
+ bb41(); // _ZN4bb41C1Ev
+ virtual void foo(); // _ZN4bb413fooEv
+ ~bb41(); // tgen
+};
+//SIG(-1 bb41) C1{ v1 Fi}
+
+
+ bb41 ::bb41(){ note_ctor("bb41", this);}
+void bb41 ::foo(){vfunc_called(this, "_ZN4bb413fooEv");}
+bb41 ::~bb41(){ note_dtor("bb41", this);} // tgen
+
+static void Test_bb41()
+{
+ extern Class_Descriptor cd_bb41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb41, buf);
+ bb41 *dp, &lv = *(dp=new (buf) bb41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb41)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb41.b");
+ test_class_info(&lv, &cd_bb41);
+ dp->~bb41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb41(Test_bb41, "bb41", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb41C1Ev();
+extern void _ZN4bb41D1Ev();
+Name_Map name_map_bb41[] = {
+ NSPAIR(_ZN4bb41C1Ev),
+ NSPAIR(_ZN4bb41D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb41[];
+extern void _ZN4bb413fooEv();
+static VTBL_ENTRY vtc_bb41[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb41[0]),
+ (VTBL_ENTRY)&_ZN4bb413fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb41[];
+extern VTBL_ENTRY _ZTV4bb41[];
+Class_Descriptor cd_bb41 = { "bb41", // class name
+ 0,0,//no base classes
+ &(vtc_bb41[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb41),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb41),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc41 {
+ int c;
+ cc41(); // _ZN4cc41C1Ev
+ virtual void foo(); // _ZN4cc413fooEv
+ ~cc41(); // tgen
+};
+//SIG(-1 cc41) C1{ v1 Fi}
+
+
+ cc41 ::cc41(){ note_ctor("cc41", this);}
+void cc41 ::foo(){vfunc_called(this, "_ZN4cc413fooEv");}
+cc41 ::~cc41(){ note_dtor("cc41", this);} // tgen
+
+static void Test_cc41()
+{
+ extern Class_Descriptor cd_cc41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc41, buf);
+ cc41 *dp, &lv = *(dp=new (buf) cc41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc41)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc41.c");
+ test_class_info(&lv, &cd_cc41);
+ dp->~cc41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc41(Test_cc41, "cc41", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc41C1Ev();
+extern void _ZN4cc41D1Ev();
+Name_Map name_map_cc41[] = {
+ NSPAIR(_ZN4cc41C1Ev),
+ NSPAIR(_ZN4cc41D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc41[];
+extern void _ZN4cc413fooEv();
+static VTBL_ENTRY vtc_cc41[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc41[0]),
+ (VTBL_ENTRY)&_ZN4cc413fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc41[];
+extern VTBL_ENTRY _ZTV4cc41[];
+Class_Descriptor cd_cc41 = { "cc41", // class name
+ 0,0,//no base classes
+ &(vtc_cc41[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc41),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc41),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd41 {
+ int d;
+ dd41(); // _ZN4dd41C1Ev
+ virtual void foo(); // _ZN4dd413fooEv
+ ~dd41(); // tgen
+};
+//SIG(-1 dd41) C1{ v1 Fi}
+
+
+ dd41 ::dd41(){ note_ctor("dd41", this);}
+void dd41 ::foo(){vfunc_called(this, "_ZN4dd413fooEv");}
+dd41 ::~dd41(){ note_dtor("dd41", this);} // tgen
+
+static void Test_dd41()
+{
+ extern Class_Descriptor cd_dd41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd41, buf);
+ dd41 *dp, &lv = *(dp=new (buf) dd41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd41)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd41.d");
+ test_class_info(&lv, &cd_dd41);
+ dp->~dd41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd41(Test_dd41, "dd41", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd41C1Ev();
+extern void _ZN4dd41D1Ev();
+Name_Map name_map_dd41[] = {
+ NSPAIR(_ZN4dd41C1Ev),
+ NSPAIR(_ZN4dd41D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd41[];
+extern void _ZN4dd413fooEv();
+static VTBL_ENTRY vtc_dd41[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd41[0]),
+ (VTBL_ENTRY)&_ZN4dd413fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd41[];
+extern VTBL_ENTRY _ZTV4dd41[];
+Class_Descriptor cd_dd41 = { "dd41", // class name
+ 0,0,//no base classes
+ &(vtc_dd41[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd41),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd41),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41 : virtual aa41 , bb41 {
+ int e;
+ ee41(const ABISELECT(__tsi64,int) *const *); // _ZN4ee41C2Ev
+ virtual void foo(); // _ZN4ee413fooEv
+ ~ee41(); // tgen
+ ee41(); // tgen
+};
+//SIG(-1 ee41) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee41 ::ee41(const ABISELECT(__tsi64,int) *const *){}
+void ee41 ::foo(){vfunc_called(this, "_ZN4ee413fooEv");}
+ee41 ::~ee41(){ note_dtor("ee41", this);} // tgen
+ee41 ::ee41(){ note_ctor("ee41", this);} // tgen
+
+static void Test_ee41()
+{
+ extern Class_Descriptor cd_ee41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee41, buf);
+ ee41 *dp, &lv = *(dp=new (buf) ee41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41)");
+ check_base_class_offset(lv, (aa41*), ABISELECT(16,12), "ee41");
+ check_base_class_offset(lv, (bb41*), 0, "ee41");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41.e");
+ test_class_info(&lv, &cd_ee41);
+ dp->~ee41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41(Test_ee41, "ee41", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee41C1Ev();
+extern void _ZN4ee41D1Ev();
+Name_Map name_map_ee41[] = {
+ NSPAIR(_ZN4ee41C1Ev),
+ NSPAIR(_ZN4ee41D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa41;
+extern VTBL_ENTRY _ZTI4aa41[];
+extern VTBL_ENTRY _ZTV4aa41[];
+extern Class_Descriptor cd_bb41;
+extern VTBL_ENTRY _ZTI4bb41[];
+extern VTBL_ENTRY _ZTV4bb41[];
+static Base_Class bases_ee41[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa41, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb41, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee41[];
+extern void _ZN4ee413fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee413fooEv,_ZTv0_n12_N4ee413fooEv)();
+extern void ABISELECT(_ZThn16_N4ee413fooEv,_ZThn12_N4ee413fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee41[0]),
+ (VTBL_ENTRY)&_ZN4ee413fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee413fooEv,_ZTv0_n12_N4ee413fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee41[];
+static VTT_ENTRY vtt_ee41[] = {
+ {&(_ZTV4ee41[3]), 3,8},
+ {&(_ZTV4ee41[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee41[];
+extern VTBL_ENTRY _ZTV4ee41[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee41[];
+static VTBL_ENTRY alt_thunk_names100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee413fooEv,_ZTv0_n12_N4ee413fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee413fooEv,_ZThn12_N4ee413fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41 = { "ee41", // class name
+ bases_ee41, 2,
+ &(vtc_ee41[0]), // expected_vtbl_contents
+ &(vtt_ee41[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee41),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee41),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee41),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff41 : cc41 , virtual dd41 {
+ int f;
+ ff41(const ABISELECT(__tsi64,int) *const *); // _ZN4ff41C2Ev
+ virtual void foo(); // _ZN4ff413fooEv
+ ~ff41(); // tgen
+ ff41(); // tgen
+};
+//SIG(-1 ff41) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff41 ::ff41(const ABISELECT(__tsi64,int) *const *){}
+void ff41 ::foo(){vfunc_called(this, "_ZN4ff413fooEv");}
+ff41 ::~ff41(){ note_dtor("ff41", this);} // tgen
+ff41 ::ff41(){ note_ctor("ff41", this);} // tgen
+
+static void Test_ff41()
+{
+ extern Class_Descriptor cd_ff41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff41, buf);
+ ff41 *dp, &lv = *(dp=new (buf) ff41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff41)");
+ check_base_class_offset(lv, (cc41*), 0, "ff41");
+ check_base_class_offset(lv, (dd41*), ABISELECT(16,12), "ff41");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff41.f");
+ test_class_info(&lv, &cd_ff41);
+ dp->~ff41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff41(Test_ff41, "ff41", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff41C1Ev();
+extern void _ZN4ff41D1Ev();
+Name_Map name_map_ff41[] = {
+ NSPAIR(_ZN4ff41C1Ev),
+ NSPAIR(_ZN4ff41D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc41;
+extern VTBL_ENTRY _ZTI4cc41[];
+extern VTBL_ENTRY _ZTV4cc41[];
+extern Class_Descriptor cd_dd41;
+extern VTBL_ENTRY _ZTI4dd41[];
+extern VTBL_ENTRY _ZTV4dd41[];
+static Base_Class bases_ff41[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc41, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd41, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff41[];
+extern void _ZN4ff413fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff413fooEv,_ZTv0_n12_N4ff413fooEv)();
+extern void ABISELECT(_ZThn16_N4ff413fooEv,_ZThn12_N4ff413fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff41[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff41[0]),
+ (VTBL_ENTRY)&_ZN4ff413fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff413fooEv,_ZTv0_n12_N4ff413fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff41[];
+static VTT_ENTRY vtt_ff41[] = {
+ {&(_ZTV4ff41[3]), 3,8},
+ {&(_ZTV4ff41[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff41[];
+extern VTBL_ENTRY _ZTV4ff41[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff41[];
+static VTBL_ENTRY alt_thunk_names101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff413fooEv,_ZTv0_n12_N4ff413fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff413fooEv,_ZThn12_N4ff413fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff41 = { "ff41", // class name
+ bases_ff41, 2,
+ &(vtc_ff41[0]), // expected_vtbl_contents
+ &(vtt_ff41[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff41),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff41),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff41),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg41 : ee41 , virtual ff41 {
+ int g;
+ gg41(const ABISELECT(__tsi64,int) *const *); // _ZN4gg41C2Ev
+ virtual void foo(); // _ZN4gg413fooEv
+ ~gg41(); // tgen
+ gg41(); // tgen
+};
+//SIG(1 gg41) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg41 ::gg41(const ABISELECT(__tsi64,int) *const *){}
+void gg41 ::foo(){vfunc_called(this, "_ZN4gg413fooEv");}
+gg41 ::~gg41(){ note_dtor("gg41", this);} // tgen
+gg41 ::gg41(){ note_ctor("gg41", this);} // tgen
+
+static void Test_gg41()
+{
+ extern Class_Descriptor cd_gg41;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg41, buf);
+ gg41 *dp, &lv = *(dp=new (buf) gg41());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg41)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg41)");
+ check_base_class_offset(lv, (aa41*)(ee41*), ABISELECT(24,16), "gg41");
+ check_base_class_offset(lv, (bb41*)(ee41*), 0, "gg41");
+ check_base_class_offset(lv, (ee41*), 0, "gg41");
+ check_base_class_offset(lv, (cc41*)(ff41*), ABISELECT(40,24), "gg41");
+ check_base_class_offset(lv, (dd41*)(ff41*), ABISELECT(56,36), "gg41");
+ check_base_class_offset(lv, (ff41*), ABISELECT(40,24), "gg41");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg41.g");
+ test_class_info(&lv, &cd_gg41);
+ dp->~gg41();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg41(Test_gg41, "gg41", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg41C1Ev();
+extern void _ZN4gg41D1Ev();
+Name_Map name_map_gg41[] = {
+ NSPAIR(_ZN4gg41C1Ev),
+ NSPAIR(_ZN4gg41D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa41;
+extern VTBL_ENTRY _ZTI4aa41[];
+extern VTBL_ENTRY _ZTV4aa41[];
+extern Class_Descriptor cd_bb41;
+extern VTBL_ENTRY _ZTI4bb41[];
+extern VTBL_ENTRY _ZTV4bb41[];
+extern Class_Descriptor cd_ee41;
+extern VTBL_ENTRY _ZTI4ee41[];
+extern VTBL_ENTRY _ZTV4ee41[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee41[];
+extern Class_Descriptor cd_cc41;
+extern VTBL_ENTRY _ZTI4cc41[];
+extern VTBL_ENTRY _ZTV4cc41[];
+extern Class_Descriptor cd_dd41;
+extern VTBL_ENTRY _ZTI4dd41[];
+extern VTBL_ENTRY _ZTV4dd41[];
+extern Class_Descriptor cd_ff41;
+extern VTBL_ENTRY _ZTI4ff41[];
+extern VTBL_ENTRY _ZTV4ff41[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff41[];
+static Base_Class bases_gg41[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa41, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb41, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee41, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc41, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd41, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff41, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg41[];
+extern void _ZN4gg413fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg413fooEv,_ZTv0_n12_N4gg413fooEv)();
+extern void ABISELECT(_ZThn24_N4gg413fooEv,_ZThn16_N4gg413fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg413fooEv,_ZTv0_n16_N4gg413fooEv)();
+extern void ABISELECT(_ZThn40_N4gg413fooEv,_ZThn24_N4gg413fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg413fooEv,_ZTv0_n12_N4gg413fooEv)();
+extern void ABISELECT(_ZThn56_N4gg413fooEv,_ZThn36_N4gg413fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg41[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg41[0]),
+ (VTBL_ENTRY)&_ZN4gg413fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg413fooEv,_ZTv0_n12_N4gg413fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg413fooEv,_ZTv0_n16_N4gg413fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg413fooEv,_ZTv0_n12_N4gg413fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg41[];
+extern void _ZN4ee413fooEv();
+static VTBL_ENTRY _tg__ZTV4ee41__4gg41[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee41[0]),
+ (VTBL_ENTRY)&_ZN4ee413fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee413fooEv,_ZTv0_n12_N4ee413fooEv)();
+extern void ABISELECT(_ZThn24_N4ee413fooEv,_ZThn16_N4ee413fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa41__4ee41__4gg41[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee413fooEv,_ZTv0_n12_N4ee413fooEv),
+};
+extern void _ZN4ff413fooEv();
+static VTBL_ENTRY _tg__ZTV4ff41__4gg41[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff41[0]),
+ (VTBL_ENTRY)&_ZN4ff413fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff413fooEv,_ZTv0_n12_N4ff413fooEv)();
+extern void ABISELECT(_ZThn16_N4ff413fooEv,_ZThn12_N4ff413fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd41__4ff41__4gg41[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff41[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff413fooEv,_ZTv0_n12_N4ff413fooEv),
+};
+static VTT_ENTRY vtt_gg41[] = {
+ {&(_ZTV4gg41[5]), 5,19},
+ {&(_tg__ZTV4ee41__4gg41[3]), 3,4},
+ {&(_tg__ZTV4aa41__4ee41__4gg41[3]), 3,4},
+ {&(_ZTV4gg41[9]), 9,19},
+ {&(_ZTV4gg41[14]), 14,19},
+ {&(_ZTV4gg41[18]), 18,19},
+ {&(_tg__ZTV4ff41__4gg41[3]), 3,4},
+ {&(_tg__ZTV4dd41__4ff41__4gg41[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg41[];
+extern VTBL_ENTRY _ZTV4gg41[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg41[];
+static VTBL_ENTRY alt_thunk_names102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff413fooEv,_ZTv0_n12_N4ff413fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff413fooEv,_ZThn12_N4ff413fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee413fooEv,_ZTv0_n12_N4ee413fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee413fooEv,_ZThn16_N4ee413fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg413fooEv,_ZTv0_n16_N4gg413fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg413fooEv,_ZThn24_N4gg413fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg413fooEv,_ZTv0_n12_N4gg413fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg413fooEv,_ZThn36_N4gg413fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg413fooEv,_ZThn16_N4gg413fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg41 = { "gg41", // class name
+ bases_gg41, 6,
+ &(vtc_gg41[0]), // expected_vtbl_contents
+ &(vtt_gg41[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg41),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg41),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg41),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa42 {
+ int a;
+ aa42(); // _ZN4aa42C1Ev
+ virtual void foo(); // _ZN4aa423fooEv
+ ~aa42(); // tgen
+};
+//SIG(-1 aa42) C1{ v1 Fi}
+
+
+ aa42 ::aa42(){ note_ctor("aa42", this);}
+void aa42 ::foo(){vfunc_called(this, "_ZN4aa423fooEv");}
+aa42 ::~aa42(){ note_dtor("aa42", this);} // tgen
+
+static void Test_aa42()
+{
+ extern Class_Descriptor cd_aa42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa42, buf);
+ aa42 *dp, &lv = *(dp=new (buf) aa42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa42)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa42.a");
+ test_class_info(&lv, &cd_aa42);
+ dp->~aa42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa42(Test_aa42, "aa42", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa42C1Ev();
+extern void _ZN4aa42D1Ev();
+Name_Map name_map_aa42[] = {
+ NSPAIR(_ZN4aa42C1Ev),
+ NSPAIR(_ZN4aa42D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa42[];
+extern void _ZN4aa423fooEv();
+static VTBL_ENTRY vtc_aa42[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa42[0]),
+ (VTBL_ENTRY)&_ZN4aa423fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa42[];
+extern VTBL_ENTRY _ZTV4aa42[];
+Class_Descriptor cd_aa42 = { "aa42", // class name
+ 0,0,//no base classes
+ &(vtc_aa42[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa42),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa42),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb42 {
+ int b;
+ bb42(); // _ZN4bb42C1Ev
+ virtual void foo(); // _ZN4bb423fooEv
+ ~bb42(); // tgen
+};
+//SIG(-1 bb42) C1{ v1 Fi}
+
+
+ bb42 ::bb42(){ note_ctor("bb42", this);}
+void bb42 ::foo(){vfunc_called(this, "_ZN4bb423fooEv");}
+bb42 ::~bb42(){ note_dtor("bb42", this);} // tgen
+
+static void Test_bb42()
+{
+ extern Class_Descriptor cd_bb42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb42, buf);
+ bb42 *dp, &lv = *(dp=new (buf) bb42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb42)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb42.b");
+ test_class_info(&lv, &cd_bb42);
+ dp->~bb42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb42(Test_bb42, "bb42", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb42C1Ev();
+extern void _ZN4bb42D1Ev();
+Name_Map name_map_bb42[] = {
+ NSPAIR(_ZN4bb42C1Ev),
+ NSPAIR(_ZN4bb42D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb42[];
+extern void _ZN4bb423fooEv();
+static VTBL_ENTRY vtc_bb42[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb42[0]),
+ (VTBL_ENTRY)&_ZN4bb423fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb42[];
+extern VTBL_ENTRY _ZTV4bb42[];
+Class_Descriptor cd_bb42 = { "bb42", // class name
+ 0,0,//no base classes
+ &(vtc_bb42[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb42),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb42),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc42 {
+ int c;
+ cc42(); // _ZN4cc42C1Ev
+ virtual void foo(); // _ZN4cc423fooEv
+ ~cc42(); // tgen
+};
+//SIG(-1 cc42) C1{ v1 Fi}
+
+
+ cc42 ::cc42(){ note_ctor("cc42", this);}
+void cc42 ::foo(){vfunc_called(this, "_ZN4cc423fooEv");}
+cc42 ::~cc42(){ note_dtor("cc42", this);} // tgen
+
+static void Test_cc42()
+{
+ extern Class_Descriptor cd_cc42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc42, buf);
+ cc42 *dp, &lv = *(dp=new (buf) cc42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc42)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc42.c");
+ test_class_info(&lv, &cd_cc42);
+ dp->~cc42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc42(Test_cc42, "cc42", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc42C1Ev();
+extern void _ZN4cc42D1Ev();
+Name_Map name_map_cc42[] = {
+ NSPAIR(_ZN4cc42C1Ev),
+ NSPAIR(_ZN4cc42D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc42[];
+extern void _ZN4cc423fooEv();
+static VTBL_ENTRY vtc_cc42[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc42[0]),
+ (VTBL_ENTRY)&_ZN4cc423fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc42[];
+extern VTBL_ENTRY _ZTV4cc42[];
+Class_Descriptor cd_cc42 = { "cc42", // class name
+ 0,0,//no base classes
+ &(vtc_cc42[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc42),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc42),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd42 {
+ int d;
+ dd42(); // _ZN4dd42C1Ev
+ virtual void foo(); // _ZN4dd423fooEv
+ ~dd42(); // tgen
+};
+//SIG(-1 dd42) C1{ v1 Fi}
+
+
+ dd42 ::dd42(){ note_ctor("dd42", this);}
+void dd42 ::foo(){vfunc_called(this, "_ZN4dd423fooEv");}
+dd42 ::~dd42(){ note_dtor("dd42", this);} // tgen
+
+static void Test_dd42()
+{
+ extern Class_Descriptor cd_dd42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd42, buf);
+ dd42 *dp, &lv = *(dp=new (buf) dd42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd42)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd42.d");
+ test_class_info(&lv, &cd_dd42);
+ dp->~dd42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd42(Test_dd42, "dd42", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd42C1Ev();
+extern void _ZN4dd42D1Ev();
+Name_Map name_map_dd42[] = {
+ NSPAIR(_ZN4dd42C1Ev),
+ NSPAIR(_ZN4dd42D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd42[];
+extern void _ZN4dd423fooEv();
+static VTBL_ENTRY vtc_dd42[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd42[0]),
+ (VTBL_ENTRY)&_ZN4dd423fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd42[];
+extern VTBL_ENTRY _ZTV4dd42[];
+Class_Descriptor cd_dd42 = { "dd42", // class name
+ 0,0,//no base classes
+ &(vtc_dd42[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd42),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd42),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42 : aa42 , virtual bb42 {
+ int e;
+ ee42(const ABISELECT(__tsi64,int) *const *); // _ZN4ee42C2Ev
+ virtual void foo(); // _ZN4ee423fooEv
+ ~ee42(); // tgen
+ ee42(); // tgen
+};
+//SIG(-1 ee42) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee42 ::ee42(const ABISELECT(__tsi64,int) *const *){}
+void ee42 ::foo(){vfunc_called(this, "_ZN4ee423fooEv");}
+ee42 ::~ee42(){ note_dtor("ee42", this);} // tgen
+ee42 ::ee42(){ note_ctor("ee42", this);} // tgen
+
+static void Test_ee42()
+{
+ extern Class_Descriptor cd_ee42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee42, buf);
+ ee42 *dp, &lv = *(dp=new (buf) ee42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42)");
+ check_base_class_offset(lv, (aa42*), 0, "ee42");
+ check_base_class_offset(lv, (bb42*), ABISELECT(16,12), "ee42");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee42.e");
+ test_class_info(&lv, &cd_ee42);
+ dp->~ee42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42(Test_ee42, "ee42", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee42C1Ev();
+extern void _ZN4ee42D1Ev();
+Name_Map name_map_ee42[] = {
+ NSPAIR(_ZN4ee42C1Ev),
+ NSPAIR(_ZN4ee42D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa42;
+extern VTBL_ENTRY _ZTI4aa42[];
+extern VTBL_ENTRY _ZTV4aa42[];
+extern Class_Descriptor cd_bb42;
+extern VTBL_ENTRY _ZTI4bb42[];
+extern VTBL_ENTRY _ZTV4bb42[];
+static Base_Class bases_ee42[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa42, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb42, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee42[];
+extern void _ZN4ee423fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee423fooEv,_ZTv0_n12_N4ee423fooEv)();
+extern void ABISELECT(_ZThn16_N4ee423fooEv,_ZThn12_N4ee423fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee42[0]),
+ (VTBL_ENTRY)&_ZN4ee423fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee423fooEv,_ZTv0_n12_N4ee423fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee42[];
+static VTT_ENTRY vtt_ee42[] = {
+ {&(_ZTV4ee42[3]), 3,8},
+ {&(_ZTV4ee42[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee42[];
+extern VTBL_ENTRY _ZTV4ee42[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee42[];
+static VTBL_ENTRY alt_thunk_names103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee423fooEv,_ZTv0_n12_N4ee423fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee423fooEv,_ZThn12_N4ee423fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42 = { "ee42", // class name
+ bases_ee42, 2,
+ &(vtc_ee42[0]), // expected_vtbl_contents
+ &(vtt_ee42[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee42),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee42),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee42),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff42 : cc42 , virtual dd42 {
+ int f;
+ ff42(const ABISELECT(__tsi64,int) *const *); // _ZN4ff42C2Ev
+ virtual void foo(); // _ZN4ff423fooEv
+ ~ff42(); // tgen
+ ff42(); // tgen
+};
+//SIG(-1 ff42) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff42 ::ff42(const ABISELECT(__tsi64,int) *const *){}
+void ff42 ::foo(){vfunc_called(this, "_ZN4ff423fooEv");}
+ff42 ::~ff42(){ note_dtor("ff42", this);} // tgen
+ff42 ::ff42(){ note_ctor("ff42", this);} // tgen
+
+static void Test_ff42()
+{
+ extern Class_Descriptor cd_ff42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff42, buf);
+ ff42 *dp, &lv = *(dp=new (buf) ff42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff42)");
+ check_base_class_offset(lv, (cc42*), 0, "ff42");
+ check_base_class_offset(lv, (dd42*), ABISELECT(16,12), "ff42");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff42.f");
+ test_class_info(&lv, &cd_ff42);
+ dp->~ff42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff42(Test_ff42, "ff42", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff42C1Ev();
+extern void _ZN4ff42D1Ev();
+Name_Map name_map_ff42[] = {
+ NSPAIR(_ZN4ff42C1Ev),
+ NSPAIR(_ZN4ff42D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc42;
+extern VTBL_ENTRY _ZTI4cc42[];
+extern VTBL_ENTRY _ZTV4cc42[];
+extern Class_Descriptor cd_dd42;
+extern VTBL_ENTRY _ZTI4dd42[];
+extern VTBL_ENTRY _ZTV4dd42[];
+static Base_Class bases_ff42[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc42, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd42, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff42[];
+extern void _ZN4ff423fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff423fooEv,_ZTv0_n12_N4ff423fooEv)();
+extern void ABISELECT(_ZThn16_N4ff423fooEv,_ZThn12_N4ff423fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff42[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff42[0]),
+ (VTBL_ENTRY)&_ZN4ff423fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff423fooEv,_ZTv0_n12_N4ff423fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff42[];
+static VTT_ENTRY vtt_ff42[] = {
+ {&(_ZTV4ff42[3]), 3,8},
+ {&(_ZTV4ff42[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff42[];
+extern VTBL_ENTRY _ZTV4ff42[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff42[];
+static VTBL_ENTRY alt_thunk_names104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff423fooEv,_ZTv0_n12_N4ff423fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff423fooEv,_ZThn12_N4ff423fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff42 = { "ff42", // class name
+ bases_ff42, 2,
+ &(vtc_ff42[0]), // expected_vtbl_contents
+ &(vtt_ff42[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff42),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff42),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff42),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg42 : ee42 , virtual ff42 {
+ int g;
+ gg42(const ABISELECT(__tsi64,int) *const *); // _ZN4gg42C2Ev
+ virtual void foo(); // _ZN4gg423fooEv
+ ~gg42(); // tgen
+ gg42(); // tgen
+};
+//SIG(1 gg42) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg42 ::gg42(const ABISELECT(__tsi64,int) *const *){}
+void gg42 ::foo(){vfunc_called(this, "_ZN4gg423fooEv");}
+gg42 ::~gg42(){ note_dtor("gg42", this);} // tgen
+gg42 ::gg42(){ note_ctor("gg42", this);} // tgen
+
+static void Test_gg42()
+{
+ extern Class_Descriptor cd_gg42;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(10,12)];
+ init_test(&cd_gg42, buf);
+ gg42 *dp, &lv = *(dp=new (buf) gg42());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(72,44), "sizeof(gg42)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg42)");
+ check_base_class_offset(lv, (aa42*)(ee42*), 0, "gg42");
+ check_base_class_offset(lv, (bb42*)(ee42*), ABISELECT(24,16), "gg42");
+ check_base_class_offset(lv, (ee42*), 0, "gg42");
+ check_base_class_offset(lv, (cc42*)(ff42*), ABISELECT(40,24), "gg42");
+ check_base_class_offset(lv, (dd42*)(ff42*), ABISELECT(56,36), "gg42");
+ check_base_class_offset(lv, (ff42*), ABISELECT(40,24), "gg42");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg42.g");
+ test_class_info(&lv, &cd_gg42);
+ dp->~gg42();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg42(Test_gg42, "gg42", ABISELECT(72,44));
+
+#else // __cplusplus
+
+extern void _ZN4gg42C1Ev();
+extern void _ZN4gg42D1Ev();
+Name_Map name_map_gg42[] = {
+ NSPAIR(_ZN4gg42C1Ev),
+ NSPAIR(_ZN4gg42D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa42;
+extern VTBL_ENTRY _ZTI4aa42[];
+extern VTBL_ENTRY _ZTV4aa42[];
+extern Class_Descriptor cd_bb42;
+extern VTBL_ENTRY _ZTI4bb42[];
+extern VTBL_ENTRY _ZTV4bb42[];
+extern Class_Descriptor cd_ee42;
+extern VTBL_ENTRY _ZTI4ee42[];
+extern VTBL_ENTRY _ZTV4ee42[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee42[];
+extern Class_Descriptor cd_cc42;
+extern VTBL_ENTRY _ZTI4cc42[];
+extern VTBL_ENTRY _ZTV4cc42[];
+extern Class_Descriptor cd_dd42;
+extern VTBL_ENTRY _ZTI4dd42[];
+extern VTBL_ENTRY _ZTV4dd42[];
+extern Class_Descriptor cd_ff42;
+extern VTBL_ENTRY _ZTI4ff42[];
+extern VTBL_ENTRY _ZTV4ff42[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff42[];
+static Base_Class bases_gg42[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa42, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb42, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee42, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc42, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd42, ABISELECT(56,36), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff42, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg42[];
+extern void _ZN4gg423fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg423fooEv,_ZTv0_n12_N4gg423fooEv)();
+extern void ABISELECT(_ZThn24_N4gg423fooEv,_ZThn16_N4gg423fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg423fooEv,_ZTv0_n16_N4gg423fooEv)();
+extern void ABISELECT(_ZThn40_N4gg423fooEv,_ZThn24_N4gg423fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg423fooEv,_ZTv0_n12_N4gg423fooEv)();
+extern void ABISELECT(_ZThn56_N4gg423fooEv,_ZThn36_N4gg423fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg42[] = {
+ ABISELECT(56,36),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg42[0]),
+ (VTBL_ENTRY)&_ZN4gg423fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg423fooEv,_ZTv0_n12_N4gg423fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(16,12),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg423fooEv,_ZTv0_n16_N4gg423fooEv),
+ ABISELECT(-56,-36),
+ ABISELECT(-56,-36),
+ (VTBL_ENTRY)&(_ZTI4gg42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg423fooEv,_ZTv0_n12_N4gg423fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg42[];
+extern void _ZN4ee423fooEv();
+static VTBL_ENTRY _tg__ZTV4ee42__4gg42[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee42[0]),
+ (VTBL_ENTRY)&_ZN4ee423fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee423fooEv,_ZTv0_n12_N4ee423fooEv)();
+extern void ABISELECT(_ZThn24_N4ee423fooEv,_ZThn16_N4ee423fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb42__4ee42__4gg42[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee423fooEv,_ZTv0_n12_N4ee423fooEv),
+};
+extern void _ZN4ff423fooEv();
+static VTBL_ENTRY _tg__ZTV4ff42__4gg42[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff42[0]),
+ (VTBL_ENTRY)&_ZN4ff423fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff423fooEv,_ZTv0_n12_N4ff423fooEv)();
+extern void ABISELECT(_ZThn16_N4ff423fooEv,_ZThn12_N4ff423fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd42__4ff42__4gg42[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff42[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff423fooEv,_ZTv0_n12_N4ff423fooEv),
+};
+static VTT_ENTRY vtt_gg42[] = {
+ {&(_ZTV4gg42[5]), 5,19},
+ {&(_tg__ZTV4ee42__4gg42[3]), 3,4},
+ {&(_tg__ZTV4bb42__4ee42__4gg42[3]), 3,4},
+ {&(_ZTV4gg42[9]), 9,19},
+ {&(_ZTV4gg42[14]), 14,19},
+ {&(_ZTV4gg42[18]), 18,19},
+ {&(_tg__ZTV4ff42__4gg42[3]), 3,4},
+ {&(_tg__ZTV4dd42__4ff42__4gg42[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg42[];
+extern VTBL_ENTRY _ZTV4gg42[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg42[];
+static VTBL_ENTRY alt_thunk_names105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff423fooEv,_ZTv0_n12_N4ff423fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff423fooEv,_ZThn12_N4ff423fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee423fooEv,_ZTv0_n12_N4ee423fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee423fooEv,_ZThn16_N4ee423fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg423fooEv,_ZTv0_n16_N4gg423fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg423fooEv,_ZThn24_N4gg423fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg423fooEv,_ZTv0_n12_N4gg423fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg423fooEv,_ZThn36_N4gg423fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg423fooEv,_ZThn16_N4gg423fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg42 = { "gg42", // class name
+ bases_gg42, 6,
+ &(vtc_gg42[0]), // expected_vtbl_contents
+ &(vtt_gg42[0]), // expected_vtt_contents
+ ABISELECT(72,44), // object size
+ NSPAIRA(_ZTI4gg42),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg42),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg42),8, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa43 {
+ int a;
+ aa43(); // _ZN4aa43C1Ev
+ virtual void foo(); // _ZN4aa433fooEv
+ ~aa43(); // tgen
+};
+//SIG(-1 aa43) C1{ v1 Fi}
+
+
+ aa43 ::aa43(){ note_ctor("aa43", this);}
+void aa43 ::foo(){vfunc_called(this, "_ZN4aa433fooEv");}
+aa43 ::~aa43(){ note_dtor("aa43", this);} // tgen
+
+static void Test_aa43()
+{
+ extern Class_Descriptor cd_aa43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa43, buf);
+ aa43 *dp, &lv = *(dp=new (buf) aa43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa43)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa43.a");
+ test_class_info(&lv, &cd_aa43);
+ dp->~aa43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa43(Test_aa43, "aa43", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa43C1Ev();
+extern void _ZN4aa43D1Ev();
+Name_Map name_map_aa43[] = {
+ NSPAIR(_ZN4aa43C1Ev),
+ NSPAIR(_ZN4aa43D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa43[];
+extern void _ZN4aa433fooEv();
+static VTBL_ENTRY vtc_aa43[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa43[0]),
+ (VTBL_ENTRY)&_ZN4aa433fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa43[];
+extern VTBL_ENTRY _ZTV4aa43[];
+Class_Descriptor cd_aa43 = { "aa43", // class name
+ 0,0,//no base classes
+ &(vtc_aa43[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa43),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa43),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb43 {
+ int b;
+ bb43(); // _ZN4bb43C1Ev
+ virtual void foo(); // _ZN4bb433fooEv
+ ~bb43(); // tgen
+};
+//SIG(-1 bb43) C1{ v1 Fi}
+
+
+ bb43 ::bb43(){ note_ctor("bb43", this);}
+void bb43 ::foo(){vfunc_called(this, "_ZN4bb433fooEv");}
+bb43 ::~bb43(){ note_dtor("bb43", this);} // tgen
+
+static void Test_bb43()
+{
+ extern Class_Descriptor cd_bb43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb43, buf);
+ bb43 *dp, &lv = *(dp=new (buf) bb43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb43)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb43.b");
+ test_class_info(&lv, &cd_bb43);
+ dp->~bb43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb43(Test_bb43, "bb43", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb43C1Ev();
+extern void _ZN4bb43D1Ev();
+Name_Map name_map_bb43[] = {
+ NSPAIR(_ZN4bb43C1Ev),
+ NSPAIR(_ZN4bb43D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb43[];
+extern void _ZN4bb433fooEv();
+static VTBL_ENTRY vtc_bb43[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb43[0]),
+ (VTBL_ENTRY)&_ZN4bb433fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb43[];
+extern VTBL_ENTRY _ZTV4bb43[];
+Class_Descriptor cd_bb43 = { "bb43", // class name
+ 0,0,//no base classes
+ &(vtc_bb43[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb43),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb43),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc43 {
+ int c;
+ cc43(); // _ZN4cc43C1Ev
+ virtual void foo(); // _ZN4cc433fooEv
+ ~cc43(); // tgen
+};
+//SIG(-1 cc43) C1{ v1 Fi}
+
+
+ cc43 ::cc43(){ note_ctor("cc43", this);}
+void cc43 ::foo(){vfunc_called(this, "_ZN4cc433fooEv");}
+cc43 ::~cc43(){ note_dtor("cc43", this);} // tgen
+
+static void Test_cc43()
+{
+ extern Class_Descriptor cd_cc43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc43, buf);
+ cc43 *dp, &lv = *(dp=new (buf) cc43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc43)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc43.c");
+ test_class_info(&lv, &cd_cc43);
+ dp->~cc43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc43(Test_cc43, "cc43", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc43C1Ev();
+extern void _ZN4cc43D1Ev();
+Name_Map name_map_cc43[] = {
+ NSPAIR(_ZN4cc43C1Ev),
+ NSPAIR(_ZN4cc43D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc43[];
+extern void _ZN4cc433fooEv();
+static VTBL_ENTRY vtc_cc43[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc43[0]),
+ (VTBL_ENTRY)&_ZN4cc433fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc43[];
+extern VTBL_ENTRY _ZTV4cc43[];
+Class_Descriptor cd_cc43 = { "cc43", // class name
+ 0,0,//no base classes
+ &(vtc_cc43[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc43),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc43),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd43 {
+ int d;
+ dd43(); // _ZN4dd43C1Ev
+ virtual void foo(); // _ZN4dd433fooEv
+ ~dd43(); // tgen
+};
+//SIG(-1 dd43) C1{ v1 Fi}
+
+
+ dd43 ::dd43(){ note_ctor("dd43", this);}
+void dd43 ::foo(){vfunc_called(this, "_ZN4dd433fooEv");}
+dd43 ::~dd43(){ note_dtor("dd43", this);} // tgen
+
+static void Test_dd43()
+{
+ extern Class_Descriptor cd_dd43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd43, buf);
+ dd43 *dp, &lv = *(dp=new (buf) dd43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd43)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd43.d");
+ test_class_info(&lv, &cd_dd43);
+ dp->~dd43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd43(Test_dd43, "dd43", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd43C1Ev();
+extern void _ZN4dd43D1Ev();
+Name_Map name_map_dd43[] = {
+ NSPAIR(_ZN4dd43C1Ev),
+ NSPAIR(_ZN4dd43D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd43[];
+extern void _ZN4dd433fooEv();
+static VTBL_ENTRY vtc_dd43[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd43[0]),
+ (VTBL_ENTRY)&_ZN4dd433fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd43[];
+extern VTBL_ENTRY _ZTV4dd43[];
+Class_Descriptor cd_dd43 = { "dd43", // class name
+ 0,0,//no base classes
+ &(vtc_dd43[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd43),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd43),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43 : virtual aa43 , virtual bb43 {
+ int e;
+ ee43(const ABISELECT(__tsi64,int) *const *); // _ZN4ee43C2Ev
+ virtual void foo(); // _ZN4ee433fooEv
+ ~ee43(); // tgen
+ ee43(); // tgen
+};
+//SIG(-1 ee43) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee43 ::ee43(const ABISELECT(__tsi64,int) *const *){}
+void ee43 ::foo(){vfunc_called(this, "_ZN4ee433fooEv");}
+ee43 ::~ee43(){ note_dtor("ee43", this);} // tgen
+ee43 ::ee43(){ note_ctor("ee43", this);} // tgen
+
+static void Test_ee43()
+{
+ extern Class_Descriptor cd_ee43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee43, buf);
+ ee43 *dp, &lv = *(dp=new (buf) ee43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43)");
+ check_base_class_offset(lv, (aa43*), ABISELECT(16,8), "ee43");
+ check_base_class_offset(lv, (bb43*), ABISELECT(32,16), "ee43");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee43.e");
+ test_class_info(&lv, &cd_ee43);
+ dp->~ee43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43(Test_ee43, "ee43", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee43C1Ev();
+extern void _ZN4ee43D1Ev();
+Name_Map name_map_ee43[] = {
+ NSPAIR(_ZN4ee43C1Ev),
+ NSPAIR(_ZN4ee43D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa43;
+extern VTBL_ENTRY _ZTI4aa43[];
+extern VTBL_ENTRY _ZTV4aa43[];
+extern Class_Descriptor cd_bb43;
+extern VTBL_ENTRY _ZTI4bb43[];
+extern VTBL_ENTRY _ZTV4bb43[];
+static Base_Class bases_ee43[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa43, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb43, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee43[];
+extern void _ZN4ee433fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv)();
+extern void ABISELECT(_ZThn16_N4ee433fooEv,_ZThn8_N4ee433fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv)();
+extern void ABISELECT(_ZThn32_N4ee433fooEv,_ZThn16_N4ee433fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee43[0]),
+ (VTBL_ENTRY)&_ZN4ee433fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee43[];
+static VTT_ENTRY vtt_ee43[] = {
+ {&(_ZTV4ee43[4]), 4,13},
+ {&(_ZTV4ee43[8]), 8,13},
+ {&(_ZTV4ee43[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee43[];
+extern VTBL_ENTRY _ZTV4ee43[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee43[];
+static VTBL_ENTRY alt_thunk_names106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee433fooEv,_ZThn16_N4ee433fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee433fooEv,_ZThn8_N4ee433fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43 = { "ee43", // class name
+ bases_ee43, 2,
+ &(vtc_ee43[0]), // expected_vtbl_contents
+ &(vtt_ee43[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee43),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee43),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee43),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff43 : cc43 , virtual dd43 {
+ int f;
+ ff43(const ABISELECT(__tsi64,int) *const *); // _ZN4ff43C2Ev
+ virtual void foo(); // _ZN4ff433fooEv
+ ~ff43(); // tgen
+ ff43(); // tgen
+};
+//SIG(-1 ff43) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff43 ::ff43(const ABISELECT(__tsi64,int) *const *){}
+void ff43 ::foo(){vfunc_called(this, "_ZN4ff433fooEv");}
+ff43 ::~ff43(){ note_dtor("ff43", this);} // tgen
+ff43 ::ff43(){ note_ctor("ff43", this);} // tgen
+
+static void Test_ff43()
+{
+ extern Class_Descriptor cd_ff43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff43, buf);
+ ff43 *dp, &lv = *(dp=new (buf) ff43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff43)");
+ check_base_class_offset(lv, (cc43*), 0, "ff43");
+ check_base_class_offset(lv, (dd43*), ABISELECT(16,12), "ff43");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff43.f");
+ test_class_info(&lv, &cd_ff43);
+ dp->~ff43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff43(Test_ff43, "ff43", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff43C1Ev();
+extern void _ZN4ff43D1Ev();
+Name_Map name_map_ff43[] = {
+ NSPAIR(_ZN4ff43C1Ev),
+ NSPAIR(_ZN4ff43D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc43;
+extern VTBL_ENTRY _ZTI4cc43[];
+extern VTBL_ENTRY _ZTV4cc43[];
+extern Class_Descriptor cd_dd43;
+extern VTBL_ENTRY _ZTI4dd43[];
+extern VTBL_ENTRY _ZTV4dd43[];
+static Base_Class bases_ff43[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc43, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd43, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff43[];
+extern void _ZN4ff433fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff433fooEv,_ZTv0_n12_N4ff433fooEv)();
+extern void ABISELECT(_ZThn16_N4ff433fooEv,_ZThn12_N4ff433fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff43[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff43[0]),
+ (VTBL_ENTRY)&_ZN4ff433fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff433fooEv,_ZTv0_n12_N4ff433fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff43[];
+static VTT_ENTRY vtt_ff43[] = {
+ {&(_ZTV4ff43[3]), 3,8},
+ {&(_ZTV4ff43[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff43[];
+extern VTBL_ENTRY _ZTV4ff43[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff43[];
+static VTBL_ENTRY alt_thunk_names107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff433fooEv,_ZTv0_n12_N4ff433fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff433fooEv,_ZThn12_N4ff433fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff43 = { "ff43", // class name
+ bases_ff43, 2,
+ &(vtc_ff43[0]), // expected_vtbl_contents
+ &(vtt_ff43[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff43),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff43),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff43),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg43 : ee43 , virtual ff43 {
+ int g;
+ gg43(const ABISELECT(__tsi64,int) *const *); // _ZN4gg43C2Ev
+ virtual void foo(); // _ZN4gg433fooEv
+ ~gg43(); // tgen
+ gg43(); // tgen
+};
+//SIG(1 gg43) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg43 ::gg43(const ABISELECT(__tsi64,int) *const *){}
+void gg43 ::foo(){vfunc_called(this, "_ZN4gg433fooEv");}
+gg43 ::~gg43(){ note_dtor("gg43", this);} // tgen
+gg43 ::gg43(){ note_ctor("gg43", this);} // tgen
+
+static void Test_gg43()
+{
+ extern Class_Descriptor cd_gg43;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg43, buf);
+ gg43 *dp, &lv = *(dp=new (buf) gg43());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg43)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg43)");
+ check_base_class_offset(lv, (aa43*)(ee43*), ABISELECT(16,12), "gg43");
+ check_base_class_offset(lv, (bb43*)(ee43*), ABISELECT(32,20), "gg43");
+ check_base_class_offset(lv, (ee43*), 0, "gg43");
+ check_base_class_offset(lv, (cc43*)(ff43*), ABISELECT(48,28), "gg43");
+ check_base_class_offset(lv, (dd43*)(ff43*), ABISELECT(64,40), "gg43");
+ check_base_class_offset(lv, (ff43*), ABISELECT(48,28), "gg43");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg43.g");
+ test_class_info(&lv, &cd_gg43);
+ dp->~gg43();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg43(Test_gg43, "gg43", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg43C1Ev();
+extern void _ZN4gg43D1Ev();
+Name_Map name_map_gg43[] = {
+ NSPAIR(_ZN4gg43C1Ev),
+ NSPAIR(_ZN4gg43D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa43;
+extern VTBL_ENTRY _ZTI4aa43[];
+extern VTBL_ENTRY _ZTV4aa43[];
+extern Class_Descriptor cd_bb43;
+extern VTBL_ENTRY _ZTI4bb43[];
+extern VTBL_ENTRY _ZTV4bb43[];
+extern Class_Descriptor cd_ee43;
+extern VTBL_ENTRY _ZTI4ee43[];
+extern VTBL_ENTRY _ZTV4ee43[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee43[];
+extern Class_Descriptor cd_cc43;
+extern VTBL_ENTRY _ZTI4cc43[];
+extern VTBL_ENTRY _ZTV4cc43[];
+extern Class_Descriptor cd_dd43;
+extern VTBL_ENTRY _ZTI4dd43[];
+extern VTBL_ENTRY _ZTV4dd43[];
+extern Class_Descriptor cd_ff43;
+extern VTBL_ENTRY _ZTI4ff43[];
+extern VTBL_ENTRY _ZTV4ff43[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff43[];
+static Base_Class bases_gg43[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa43, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb43, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee43, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc43, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd43, ABISELECT(64,40), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff43, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg43[];
+extern void _ZN4gg433fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv)();
+extern void ABISELECT(_ZThn16_N4gg433fooEv,_ZThn12_N4gg433fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv)();
+extern void ABISELECT(_ZThn32_N4gg433fooEv,_ZThn20_N4gg433fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg433fooEv,_ZTv0_n16_N4gg433fooEv)();
+extern void ABISELECT(_ZThn48_N4gg433fooEv,_ZThn28_N4gg433fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv)();
+extern void ABISELECT(_ZThn64_N4gg433fooEv,_ZThn40_N4gg433fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg43[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg43[0]),
+ (VTBL_ENTRY)&_ZN4gg433fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg433fooEv,_ZTv0_n16_N4gg433fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg43[];
+extern void _ZN4ee433fooEv();
+static VTBL_ENTRY _tg__ZTV4ee43__4gg43[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee43[0]),
+ (VTBL_ENTRY)&_ZN4ee433fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv)();
+extern void ABISELECT(_ZThn16_N4ee433fooEv,_ZThn12_N4ee433fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa43__4ee43__4gg43[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv)();
+extern void ABISELECT(_ZThn32_N4ee433fooEv,_ZThn20_N4ee433fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb43__4ee43__4gg43[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ee43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv),
+};
+extern void _ZN4ff433fooEv();
+static VTBL_ENTRY _tg__ZTV4ff43__4gg43[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff43[0]),
+ (VTBL_ENTRY)&_ZN4ff433fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff433fooEv,_ZTv0_n12_N4ff433fooEv)();
+extern void ABISELECT(_ZThn16_N4ff433fooEv,_ZThn12_N4ff433fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd43__4ff43__4gg43[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff43[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff433fooEv,_ZTv0_n12_N4ff433fooEv),
+};
+static VTT_ENTRY vtt_gg43[] = {
+ {&(_ZTV4gg43[6]), 6,24},
+ {&(_tg__ZTV4ee43__4gg43[4]), 4,5},
+ {&(_tg__ZTV4aa43__4ee43__4gg43[3]), 3,4},
+ {&(_tg__ZTV4bb43__4ee43__4gg43[3]), 3,4},
+ {&(_ZTV4gg43[10]), 10,24},
+ {&(_ZTV4gg43[14]), 14,24},
+ {&(_ZTV4gg43[19]), 19,24},
+ {&(_ZTV4gg43[23]), 23,24},
+ {&(_tg__ZTV4ff43__4gg43[3]), 3,4},
+ {&(_tg__ZTV4dd43__4ff43__4gg43[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg43[];
+extern VTBL_ENTRY _ZTV4gg43[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg43[];
+static VTBL_ENTRY alt_thunk_names108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff433fooEv,_ZTv0_n12_N4ff433fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff433fooEv,_ZThn12_N4ff433fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee433fooEv,_ZTv0_n12_N4ee433fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee433fooEv,_ZThn20_N4ee433fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee433fooEv,_ZThn12_N4ee433fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg433fooEv,_ZTv0_n16_N4gg433fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg433fooEv,_ZThn28_N4gg433fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg433fooEv,_ZTv0_n12_N4gg433fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg433fooEv,_ZThn40_N4gg433fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg433fooEv,_ZThn20_N4gg433fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg433fooEv,_ZThn12_N4gg433fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg43 = { "gg43", // class name
+ bases_gg43, 6,
+ &(vtc_gg43[0]), // expected_vtbl_contents
+ &(vtt_gg43[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg43),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg43),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg43),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa44 {
+ int a;
+ aa44(); // _ZN4aa44C1Ev
+ virtual void foo(); // _ZN4aa443fooEv
+ ~aa44(); // tgen
+};
+//SIG(-1 aa44) C1{ v1 Fi}
+
+
+ aa44 ::aa44(){ note_ctor("aa44", this);}
+void aa44 ::foo(){vfunc_called(this, "_ZN4aa443fooEv");}
+aa44 ::~aa44(){ note_dtor("aa44", this);} // tgen
+
+static void Test_aa44()
+{
+ extern Class_Descriptor cd_aa44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa44, buf);
+ aa44 *dp, &lv = *(dp=new (buf) aa44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa44)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa44.a");
+ test_class_info(&lv, &cd_aa44);
+ dp->~aa44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa44(Test_aa44, "aa44", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa44C1Ev();
+extern void _ZN4aa44D1Ev();
+Name_Map name_map_aa44[] = {
+ NSPAIR(_ZN4aa44C1Ev),
+ NSPAIR(_ZN4aa44D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa44[];
+extern void _ZN4aa443fooEv();
+static VTBL_ENTRY vtc_aa44[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa44[0]),
+ (VTBL_ENTRY)&_ZN4aa443fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa44[];
+extern VTBL_ENTRY _ZTV4aa44[];
+Class_Descriptor cd_aa44 = { "aa44", // class name
+ 0,0,//no base classes
+ &(vtc_aa44[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa44),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa44),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb44 {
+ int b;
+ bb44(); // _ZN4bb44C1Ev
+ virtual void foo(); // _ZN4bb443fooEv
+ ~bb44(); // tgen
+};
+//SIG(-1 bb44) C1{ v1 Fi}
+
+
+ bb44 ::bb44(){ note_ctor("bb44", this);}
+void bb44 ::foo(){vfunc_called(this, "_ZN4bb443fooEv");}
+bb44 ::~bb44(){ note_dtor("bb44", this);} // tgen
+
+static void Test_bb44()
+{
+ extern Class_Descriptor cd_bb44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb44, buf);
+ bb44 *dp, &lv = *(dp=new (buf) bb44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb44)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb44.b");
+ test_class_info(&lv, &cd_bb44);
+ dp->~bb44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb44(Test_bb44, "bb44", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb44C1Ev();
+extern void _ZN4bb44D1Ev();
+Name_Map name_map_bb44[] = {
+ NSPAIR(_ZN4bb44C1Ev),
+ NSPAIR(_ZN4bb44D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb44[];
+extern void _ZN4bb443fooEv();
+static VTBL_ENTRY vtc_bb44[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb44[0]),
+ (VTBL_ENTRY)&_ZN4bb443fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb44[];
+extern VTBL_ENTRY _ZTV4bb44[];
+Class_Descriptor cd_bb44 = { "bb44", // class name
+ 0,0,//no base classes
+ &(vtc_bb44[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb44),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb44),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc44 {
+ int c;
+ cc44(); // _ZN4cc44C1Ev
+ virtual void foo(); // _ZN4cc443fooEv
+ ~cc44(); // tgen
+};
+//SIG(-1 cc44) C1{ v1 Fi}
+
+
+ cc44 ::cc44(){ note_ctor("cc44", this);}
+void cc44 ::foo(){vfunc_called(this, "_ZN4cc443fooEv");}
+cc44 ::~cc44(){ note_dtor("cc44", this);} // tgen
+
+static void Test_cc44()
+{
+ extern Class_Descriptor cd_cc44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc44, buf);
+ cc44 *dp, &lv = *(dp=new (buf) cc44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc44)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc44.c");
+ test_class_info(&lv, &cd_cc44);
+ dp->~cc44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc44(Test_cc44, "cc44", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc44C1Ev();
+extern void _ZN4cc44D1Ev();
+Name_Map name_map_cc44[] = {
+ NSPAIR(_ZN4cc44C1Ev),
+ NSPAIR(_ZN4cc44D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc44[];
+extern void _ZN4cc443fooEv();
+static VTBL_ENTRY vtc_cc44[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc44[0]),
+ (VTBL_ENTRY)&_ZN4cc443fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc44[];
+extern VTBL_ENTRY _ZTV4cc44[];
+Class_Descriptor cd_cc44 = { "cc44", // class name
+ 0,0,//no base classes
+ &(vtc_cc44[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc44),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc44),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd44 {
+ int d;
+ dd44(); // _ZN4dd44C1Ev
+ virtual void foo(); // _ZN4dd443fooEv
+ ~dd44(); // tgen
+};
+//SIG(-1 dd44) C1{ v1 Fi}
+
+
+ dd44 ::dd44(){ note_ctor("dd44", this);}
+void dd44 ::foo(){vfunc_called(this, "_ZN4dd443fooEv");}
+dd44 ::~dd44(){ note_dtor("dd44", this);} // tgen
+
+static void Test_dd44()
+{
+ extern Class_Descriptor cd_dd44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd44, buf);
+ dd44 *dp, &lv = *(dp=new (buf) dd44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd44)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd44.d");
+ test_class_info(&lv, &cd_dd44);
+ dp->~dd44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd44(Test_dd44, "dd44", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd44C1Ev();
+extern void _ZN4dd44D1Ev();
+Name_Map name_map_dd44[] = {
+ NSPAIR(_ZN4dd44C1Ev),
+ NSPAIR(_ZN4dd44D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd44[];
+extern void _ZN4dd443fooEv();
+static VTBL_ENTRY vtc_dd44[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd44[0]),
+ (VTBL_ENTRY)&_ZN4dd443fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd44[];
+extern VTBL_ENTRY _ZTV4dd44[];
+Class_Descriptor cd_dd44 = { "dd44", // class name
+ 0,0,//no base classes
+ &(vtc_dd44[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd44),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd44),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44 : aa44 , bb44 {
+ int e;
+ ee44(); // _ZN4ee44C1Ev
+ virtual void foo(); // _ZN4ee443fooEv
+ ~ee44(); // tgen
+};
+//SIG(-1 ee44) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee44 ::ee44(){ note_ctor("ee44", this);}
+void ee44 ::foo(){vfunc_called(this, "_ZN4ee443fooEv");}
+ee44 ::~ee44(){ note_dtor("ee44", this);} // tgen
+
+static void Test_ee44()
+{
+ extern Class_Descriptor cd_ee44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee44, buf);
+ ee44 *dp, &lv = *(dp=new (buf) ee44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44)");
+ check_base_class_offset(lv, (aa44*), 0, "ee44");
+ check_base_class_offset(lv, (bb44*), ABISELECT(16,8), "ee44");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee44.e");
+ test_class_info(&lv, &cd_ee44);
+ dp->~ee44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44(Test_ee44, "ee44", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee44C1Ev();
+extern void _ZN4ee44D1Ev();
+Name_Map name_map_ee44[] = {
+ NSPAIR(_ZN4ee44C1Ev),
+ NSPAIR(_ZN4ee44D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa44;
+extern VTBL_ENTRY _ZTI4aa44[];
+extern VTBL_ENTRY _ZTV4aa44[];
+extern Class_Descriptor cd_bb44;
+extern VTBL_ENTRY _ZTI4bb44[];
+extern VTBL_ENTRY _ZTV4bb44[];
+static Base_Class bases_ee44[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa44, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb44, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee44[];
+extern void _ZN4ee443fooEv();
+extern void ABISELECT(_ZThn16_N4ee443fooEv,_ZThn8_N4ee443fooEv)();
+static VTBL_ENTRY vtc_ee44[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee44[0]),
+ (VTBL_ENTRY)&_ZN4ee443fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee443fooEv,_ZThn8_N4ee443fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee44[];
+extern VTBL_ENTRY _ZTV4ee44[];
+Class_Descriptor cd_ee44 = { "ee44", // class name
+ bases_ee44, 2,
+ &(vtc_ee44[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee44),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee44),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff44 : virtual cc44 , virtual dd44 {
+ int f;
+ ff44(const ABISELECT(__tsi64,int) *const *); // _ZN4ff44C2Ev
+ virtual void foo(); // _ZN4ff443fooEv
+ ~ff44(); // tgen
+ ff44(); // tgen
+};
+//SIG(-1 ff44) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff44 ::ff44(const ABISELECT(__tsi64,int) *const *){}
+void ff44 ::foo(){vfunc_called(this, "_ZN4ff443fooEv");}
+ff44 ::~ff44(){ note_dtor("ff44", this);} // tgen
+ff44 ::ff44(){ note_ctor("ff44", this);} // tgen
+
+static void Test_ff44()
+{
+ extern Class_Descriptor cd_ff44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff44, buf);
+ ff44 *dp, &lv = *(dp=new (buf) ff44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff44)");
+ check_base_class_offset(lv, (cc44*), ABISELECT(16,8), "ff44");
+ check_base_class_offset(lv, (dd44*), ABISELECT(32,16), "ff44");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff44.f");
+ test_class_info(&lv, &cd_ff44);
+ dp->~ff44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff44(Test_ff44, "ff44", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff44C1Ev();
+extern void _ZN4ff44D1Ev();
+Name_Map name_map_ff44[] = {
+ NSPAIR(_ZN4ff44C1Ev),
+ NSPAIR(_ZN4ff44D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc44;
+extern VTBL_ENTRY _ZTI4cc44[];
+extern VTBL_ENTRY _ZTV4cc44[];
+extern Class_Descriptor cd_dd44;
+extern VTBL_ENTRY _ZTI4dd44[];
+extern VTBL_ENTRY _ZTV4dd44[];
+static Base_Class bases_ff44[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc44, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd44, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff44[];
+extern void _ZN4ff443fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv)();
+extern void ABISELECT(_ZThn16_N4ff443fooEv,_ZThn8_N4ff443fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv)();
+extern void ABISELECT(_ZThn32_N4ff443fooEv,_ZThn16_N4ff443fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff44[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff44[0]),
+ (VTBL_ENTRY)&_ZN4ff443fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff44[];
+static VTT_ENTRY vtt_ff44[] = {
+ {&(_ZTV4ff44[4]), 4,13},
+ {&(_ZTV4ff44[8]), 8,13},
+ {&(_ZTV4ff44[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff44[];
+extern VTBL_ENTRY _ZTV4ff44[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff44[];
+static VTBL_ENTRY alt_thunk_names109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff443fooEv,_ZThn16_N4ff443fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff443fooEv,_ZThn8_N4ff443fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff44 = { "ff44", // class name
+ bases_ff44, 2,
+ &(vtc_ff44[0]), // expected_vtbl_contents
+ &(vtt_ff44[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff44),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff44),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff44),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg44 : ee44 , virtual ff44 {
+ int g;
+ gg44(const ABISELECT(__tsi64,int) *const *); // _ZN4gg44C2Ev
+ virtual void foo(); // _ZN4gg443fooEv
+ ~gg44(); // tgen
+ gg44(); // tgen
+};
+//SIG(1 gg44) C1{ BC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg44 ::gg44(const ABISELECT(__tsi64,int) *const *){}
+void gg44 ::foo(){vfunc_called(this, "_ZN4gg443fooEv");}
+gg44 ::~gg44(){ note_dtor("gg44", this);} // tgen
+gg44 ::gg44(){ note_ctor("gg44", this);} // tgen
+
+static void Test_gg44()
+{
+ extern Class_Descriptor cd_gg44;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg44, buf);
+ gg44 *dp, &lv = *(dp=new (buf) gg44());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg44)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg44)");
+ check_base_class_offset(lv, (aa44*)(ee44*), 0, "gg44");
+ check_base_class_offset(lv, (bb44*)(ee44*), ABISELECT(16,8), "gg44");
+ check_base_class_offset(lv, (ee44*), 0, "gg44");
+ check_base_class_offset(lv, (cc44*)(ff44*), ABISELECT(56,32), "gg44");
+ check_base_class_offset(lv, (dd44*)(ff44*), ABISELECT(72,40), "gg44");
+ check_base_class_offset(lv, (ff44*), ABISELECT(40,24), "gg44");
+ check_field_offset(lv, g, ABISELECT(32,20), "gg44.g");
+ test_class_info(&lv, &cd_gg44);
+ dp->~gg44();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg44(Test_gg44, "gg44", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg44C1Ev();
+extern void _ZN4gg44D1Ev();
+Name_Map name_map_gg44[] = {
+ NSPAIR(_ZN4gg44C1Ev),
+ NSPAIR(_ZN4gg44D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa44;
+extern VTBL_ENTRY _ZTI4aa44[];
+extern VTBL_ENTRY _ZTV4aa44[];
+extern Class_Descriptor cd_bb44;
+extern VTBL_ENTRY _ZTI4bb44[];
+extern VTBL_ENTRY _ZTV4bb44[];
+extern Class_Descriptor cd_ee44;
+extern VTBL_ENTRY _ZTI4ee44[];
+extern VTBL_ENTRY _ZTV4ee44[];
+extern Class_Descriptor cd_cc44;
+extern VTBL_ENTRY _ZTI4cc44[];
+extern VTBL_ENTRY _ZTV4cc44[];
+extern Class_Descriptor cd_dd44;
+extern VTBL_ENTRY _ZTI4dd44[];
+extern VTBL_ENTRY _ZTV4dd44[];
+extern Class_Descriptor cd_ff44;
+extern VTBL_ENTRY _ZTI4ff44[];
+extern VTBL_ENTRY _ZTV4ff44[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff44[];
+static Base_Class bases_gg44[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa44, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb44, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee44, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc44, ABISELECT(56,32), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd44, ABISELECT(72,40), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff44, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg44[];
+extern void _ZN4gg443fooEv();
+extern void ABISELECT(_ZThn16_N4gg443fooEv,_ZThn8_N4gg443fooEv)();
+extern void ABISELECT(_ZTv0_n40_N4gg443fooEv,_ZTv0_n20_N4gg443fooEv)();
+extern void ABISELECT(_ZThn40_N4gg443fooEv,_ZThn24_N4gg443fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg443fooEv,_ZTv0_n12_N4gg443fooEv)();
+extern void ABISELECT(_ZThn56_N4gg443fooEv,_ZThn32_N4gg443fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg443fooEv,_ZTv0_n12_N4gg443fooEv)();
+extern void ABISELECT(_ZThn72_N4gg443fooEv,_ZThn40_N4gg443fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg44[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg44[0]),
+ (VTBL_ENTRY)&_ZN4gg443fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4gg443fooEv,_ZThn8_N4gg443fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg443fooEv,_ZTv0_n20_N4gg443fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg443fooEv,_ZTv0_n12_N4gg443fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg443fooEv,_ZTv0_n12_N4gg443fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg44[];
+extern void _ZN4ff443fooEv();
+static VTBL_ENTRY _tg__ZTV4ff44__4gg44[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff44[0]),
+ (VTBL_ENTRY)&_ZN4ff443fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv)();
+extern void ABISELECT(_ZThn16_N4ff443fooEv,_ZThn8_N4ff443fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc44__4ff44__4gg44[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv)();
+extern void ABISELECT(_ZThn32_N4ff443fooEv,_ZThn16_N4ff443fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd44__4ff44__4gg44[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff44[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv),
+};
+static VTT_ENTRY vtt_gg44[] = {
+ {&(_ZTV4gg44[5]), 5,23},
+ {&(_ZTV4gg44[14]), 14,23},
+ {&(_ZTV4gg44[18]), 18,23},
+ {&(_ZTV4gg44[22]), 22,23},
+ {&(_tg__ZTV4ff44__4gg44[4]), 4,5},
+ {&(_tg__ZTV4cc44__4ff44__4gg44[3]), 3,4},
+ {&(_tg__ZTV4dd44__4ff44__4gg44[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg44[];
+extern VTBL_ENTRY _ZTV4gg44[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg44[];
+static VTBL_ENTRY alt_thunk_names110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff443fooEv,_ZTv0_n12_N4ff443fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff443fooEv,_ZThn16_N4ff443fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff443fooEv,_ZThn8_N4ff443fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg443fooEv,_ZTv0_n12_N4gg443fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg443fooEv,_ZThn40_N4gg443fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg443fooEv,_ZThn32_N4gg443fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg443fooEv,_ZTv0_n20_N4gg443fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg443fooEv,_ZThn24_N4gg443fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg44 = { "gg44", // class name
+ bases_gg44, 6,
+ &(vtc_gg44[0]), // expected_vtbl_contents
+ &(vtt_gg44[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg44),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg44),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg44),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names110,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa45 {
+ int a;
+ aa45(); // _ZN4aa45C1Ev
+ virtual void foo(); // _ZN4aa453fooEv
+ ~aa45(); // tgen
+};
+//SIG(-1 aa45) C1{ v1 Fi}
+
+
+ aa45 ::aa45(){ note_ctor("aa45", this);}
+void aa45 ::foo(){vfunc_called(this, "_ZN4aa453fooEv");}
+aa45 ::~aa45(){ note_dtor("aa45", this);} // tgen
+
+static void Test_aa45()
+{
+ extern Class_Descriptor cd_aa45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa45, buf);
+ aa45 *dp, &lv = *(dp=new (buf) aa45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa45)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa45.a");
+ test_class_info(&lv, &cd_aa45);
+ dp->~aa45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa45(Test_aa45, "aa45", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa45C1Ev();
+extern void _ZN4aa45D1Ev();
+Name_Map name_map_aa45[] = {
+ NSPAIR(_ZN4aa45C1Ev),
+ NSPAIR(_ZN4aa45D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa45[];
+extern void _ZN4aa453fooEv();
+static VTBL_ENTRY vtc_aa45[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa45[0]),
+ (VTBL_ENTRY)&_ZN4aa453fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa45[];
+extern VTBL_ENTRY _ZTV4aa45[];
+Class_Descriptor cd_aa45 = { "aa45", // class name
+ 0,0,//no base classes
+ &(vtc_aa45[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa45),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa45),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb45 {
+ int b;
+ bb45(); // _ZN4bb45C1Ev
+ virtual void foo(); // _ZN4bb453fooEv
+ ~bb45(); // tgen
+};
+//SIG(-1 bb45) C1{ v1 Fi}
+
+
+ bb45 ::bb45(){ note_ctor("bb45", this);}
+void bb45 ::foo(){vfunc_called(this, "_ZN4bb453fooEv");}
+bb45 ::~bb45(){ note_dtor("bb45", this);} // tgen
+
+static void Test_bb45()
+{
+ extern Class_Descriptor cd_bb45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb45, buf);
+ bb45 *dp, &lv = *(dp=new (buf) bb45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb45)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb45.b");
+ test_class_info(&lv, &cd_bb45);
+ dp->~bb45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb45(Test_bb45, "bb45", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb45C1Ev();
+extern void _ZN4bb45D1Ev();
+Name_Map name_map_bb45[] = {
+ NSPAIR(_ZN4bb45C1Ev),
+ NSPAIR(_ZN4bb45D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb45[];
+extern void _ZN4bb453fooEv();
+static VTBL_ENTRY vtc_bb45[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb45[0]),
+ (VTBL_ENTRY)&_ZN4bb453fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb45[];
+extern VTBL_ENTRY _ZTV4bb45[];
+Class_Descriptor cd_bb45 = { "bb45", // class name
+ 0,0,//no base classes
+ &(vtc_bb45[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb45),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb45),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc45 {
+ int c;
+ cc45(); // _ZN4cc45C1Ev
+ virtual void foo(); // _ZN4cc453fooEv
+ ~cc45(); // tgen
+};
+//SIG(-1 cc45) C1{ v1 Fi}
+
+
+ cc45 ::cc45(){ note_ctor("cc45", this);}
+void cc45 ::foo(){vfunc_called(this, "_ZN4cc453fooEv");}
+cc45 ::~cc45(){ note_dtor("cc45", this);} // tgen
+
+static void Test_cc45()
+{
+ extern Class_Descriptor cd_cc45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc45, buf);
+ cc45 *dp, &lv = *(dp=new (buf) cc45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc45)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc45.c");
+ test_class_info(&lv, &cd_cc45);
+ dp->~cc45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc45(Test_cc45, "cc45", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc45C1Ev();
+extern void _ZN4cc45D1Ev();
+Name_Map name_map_cc45[] = {
+ NSPAIR(_ZN4cc45C1Ev),
+ NSPAIR(_ZN4cc45D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc45[];
+extern void _ZN4cc453fooEv();
+static VTBL_ENTRY vtc_cc45[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc45[0]),
+ (VTBL_ENTRY)&_ZN4cc453fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc45[];
+extern VTBL_ENTRY _ZTV4cc45[];
+Class_Descriptor cd_cc45 = { "cc45", // class name
+ 0,0,//no base classes
+ &(vtc_cc45[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc45),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc45),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd45 {
+ int d;
+ dd45(); // _ZN4dd45C1Ev
+ virtual void foo(); // _ZN4dd453fooEv
+ ~dd45(); // tgen
+};
+//SIG(-1 dd45) C1{ v1 Fi}
+
+
+ dd45 ::dd45(){ note_ctor("dd45", this);}
+void dd45 ::foo(){vfunc_called(this, "_ZN4dd453fooEv");}
+dd45 ::~dd45(){ note_dtor("dd45", this);} // tgen
+
+static void Test_dd45()
+{
+ extern Class_Descriptor cd_dd45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd45, buf);
+ dd45 *dp, &lv = *(dp=new (buf) dd45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd45)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd45.d");
+ test_class_info(&lv, &cd_dd45);
+ dp->~dd45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd45(Test_dd45, "dd45", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd45C1Ev();
+extern void _ZN4dd45D1Ev();
+Name_Map name_map_dd45[] = {
+ NSPAIR(_ZN4dd45C1Ev),
+ NSPAIR(_ZN4dd45D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd45[];
+extern void _ZN4dd453fooEv();
+static VTBL_ENTRY vtc_dd45[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd45[0]),
+ (VTBL_ENTRY)&_ZN4dd453fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd45[];
+extern VTBL_ENTRY _ZTV4dd45[];
+Class_Descriptor cd_dd45 = { "dd45", // class name
+ 0,0,//no base classes
+ &(vtc_dd45[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd45),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd45),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45 : virtual aa45 , bb45 {
+ int e;
+ ee45(const ABISELECT(__tsi64,int) *const *); // _ZN4ee45C2Ev
+ virtual void foo(); // _ZN4ee453fooEv
+ ~ee45(); // tgen
+ ee45(); // tgen
+};
+//SIG(-1 ee45) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee45 ::ee45(const ABISELECT(__tsi64,int) *const *){}
+void ee45 ::foo(){vfunc_called(this, "_ZN4ee453fooEv");}
+ee45 ::~ee45(){ note_dtor("ee45", this);} // tgen
+ee45 ::ee45(){ note_ctor("ee45", this);} // tgen
+
+static void Test_ee45()
+{
+ extern Class_Descriptor cd_ee45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee45, buf);
+ ee45 *dp, &lv = *(dp=new (buf) ee45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45)");
+ check_base_class_offset(lv, (aa45*), ABISELECT(16,12), "ee45");
+ check_base_class_offset(lv, (bb45*), 0, "ee45");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45.e");
+ test_class_info(&lv, &cd_ee45);
+ dp->~ee45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45(Test_ee45, "ee45", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee45C1Ev();
+extern void _ZN4ee45D1Ev();
+Name_Map name_map_ee45[] = {
+ NSPAIR(_ZN4ee45C1Ev),
+ NSPAIR(_ZN4ee45D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa45;
+extern VTBL_ENTRY _ZTI4aa45[];
+extern VTBL_ENTRY _ZTV4aa45[];
+extern Class_Descriptor cd_bb45;
+extern VTBL_ENTRY _ZTI4bb45[];
+extern VTBL_ENTRY _ZTV4bb45[];
+static Base_Class bases_ee45[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa45, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb45, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee45[];
+extern void _ZN4ee453fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee453fooEv,_ZTv0_n12_N4ee453fooEv)();
+extern void ABISELECT(_ZThn16_N4ee453fooEv,_ZThn12_N4ee453fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee45[0]),
+ (VTBL_ENTRY)&_ZN4ee453fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee453fooEv,_ZTv0_n12_N4ee453fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee45[];
+static VTT_ENTRY vtt_ee45[] = {
+ {&(_ZTV4ee45[3]), 3,8},
+ {&(_ZTV4ee45[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee45[];
+extern VTBL_ENTRY _ZTV4ee45[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee45[];
+static VTBL_ENTRY alt_thunk_names111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee453fooEv,_ZTv0_n12_N4ee453fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee453fooEv,_ZThn12_N4ee453fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45 = { "ee45", // class name
+ bases_ee45, 2,
+ &(vtc_ee45[0]), // expected_vtbl_contents
+ &(vtt_ee45[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee45),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee45),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee45),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names111,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff45 : virtual cc45 , virtual dd45 {
+ int f;
+ ff45(const ABISELECT(__tsi64,int) *const *); // _ZN4ff45C2Ev
+ virtual void foo(); // _ZN4ff453fooEv
+ ~ff45(); // tgen
+ ff45(); // tgen
+};
+//SIG(-1 ff45) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff45 ::ff45(const ABISELECT(__tsi64,int) *const *){}
+void ff45 ::foo(){vfunc_called(this, "_ZN4ff453fooEv");}
+ff45 ::~ff45(){ note_dtor("ff45", this);} // tgen
+ff45 ::ff45(){ note_ctor("ff45", this);} // tgen
+
+static void Test_ff45()
+{
+ extern Class_Descriptor cd_ff45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff45, buf);
+ ff45 *dp, &lv = *(dp=new (buf) ff45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff45)");
+ check_base_class_offset(lv, (cc45*), ABISELECT(16,8), "ff45");
+ check_base_class_offset(lv, (dd45*), ABISELECT(32,16), "ff45");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff45.f");
+ test_class_info(&lv, &cd_ff45);
+ dp->~ff45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff45(Test_ff45, "ff45", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff45C1Ev();
+extern void _ZN4ff45D1Ev();
+Name_Map name_map_ff45[] = {
+ NSPAIR(_ZN4ff45C1Ev),
+ NSPAIR(_ZN4ff45D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc45;
+extern VTBL_ENTRY _ZTI4cc45[];
+extern VTBL_ENTRY _ZTV4cc45[];
+extern Class_Descriptor cd_dd45;
+extern VTBL_ENTRY _ZTI4dd45[];
+extern VTBL_ENTRY _ZTV4dd45[];
+static Base_Class bases_ff45[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc45, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd45, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff45[];
+extern void _ZN4ff453fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv)();
+extern void ABISELECT(_ZThn16_N4ff453fooEv,_ZThn8_N4ff453fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv)();
+extern void ABISELECT(_ZThn32_N4ff453fooEv,_ZThn16_N4ff453fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff45[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff45[0]),
+ (VTBL_ENTRY)&_ZN4ff453fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff45[];
+static VTT_ENTRY vtt_ff45[] = {
+ {&(_ZTV4ff45[4]), 4,13},
+ {&(_ZTV4ff45[8]), 8,13},
+ {&(_ZTV4ff45[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff45[];
+extern VTBL_ENTRY _ZTV4ff45[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff45[];
+static VTBL_ENTRY alt_thunk_names112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff453fooEv,_ZThn16_N4ff453fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff453fooEv,_ZThn8_N4ff453fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff45 = { "ff45", // class name
+ bases_ff45, 2,
+ &(vtc_ff45[0]), // expected_vtbl_contents
+ &(vtt_ff45[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff45),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff45),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff45),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg45 : ee45 , virtual ff45 {
+ int g;
+ gg45(const ABISELECT(__tsi64,int) *const *); // _ZN4gg45C2Ev
+ virtual void foo(); // _ZN4gg453fooEv
+ ~gg45(); // tgen
+ gg45(); // tgen
+};
+//SIG(1 gg45) C1{ BC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg45 ::gg45(const ABISELECT(__tsi64,int) *const *){}
+void gg45 ::foo(){vfunc_called(this, "_ZN4gg453fooEv");}
+gg45 ::~gg45(){ note_dtor("gg45", this);} // tgen
+gg45 ::gg45(){ note_ctor("gg45", this);} // tgen
+
+static void Test_gg45()
+{
+ extern Class_Descriptor cd_gg45;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg45, buf);
+ gg45 *dp, &lv = *(dp=new (buf) gg45());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg45)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg45)");
+ check_base_class_offset(lv, (aa45*)(ee45*), ABISELECT(24,16), "gg45");
+ check_base_class_offset(lv, (bb45*)(ee45*), 0, "gg45");
+ check_base_class_offset(lv, (ee45*), 0, "gg45");
+ check_base_class_offset(lv, (cc45*)(ff45*), ABISELECT(56,32), "gg45");
+ check_base_class_offset(lv, (dd45*)(ff45*), ABISELECT(72,40), "gg45");
+ check_base_class_offset(lv, (ff45*), ABISELECT(40,24), "gg45");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg45.g");
+ test_class_info(&lv, &cd_gg45);
+ dp->~gg45();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg45(Test_gg45, "gg45", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg45C1Ev();
+extern void _ZN4gg45D1Ev();
+Name_Map name_map_gg45[] = {
+ NSPAIR(_ZN4gg45C1Ev),
+ NSPAIR(_ZN4gg45D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa45;
+extern VTBL_ENTRY _ZTI4aa45[];
+extern VTBL_ENTRY _ZTV4aa45[];
+extern Class_Descriptor cd_bb45;
+extern VTBL_ENTRY _ZTI4bb45[];
+extern VTBL_ENTRY _ZTV4bb45[];
+extern Class_Descriptor cd_ee45;
+extern VTBL_ENTRY _ZTI4ee45[];
+extern VTBL_ENTRY _ZTV4ee45[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee45[];
+extern Class_Descriptor cd_cc45;
+extern VTBL_ENTRY _ZTI4cc45[];
+extern VTBL_ENTRY _ZTV4cc45[];
+extern Class_Descriptor cd_dd45;
+extern VTBL_ENTRY _ZTI4dd45[];
+extern VTBL_ENTRY _ZTV4dd45[];
+extern Class_Descriptor cd_ff45;
+extern VTBL_ENTRY _ZTI4ff45[];
+extern VTBL_ENTRY _ZTV4ff45[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff45[];
+static Base_Class bases_gg45[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa45, ABISELECT(24,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb45, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee45, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc45, ABISELECT(56,32), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd45, ABISELECT(72,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff45, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg45[];
+extern void _ZN4gg453fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv)();
+extern void ABISELECT(_ZThn24_N4gg453fooEv,_ZThn16_N4gg453fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N4gg453fooEv,_ZTv0_n20_N4gg453fooEv)();
+extern void ABISELECT(_ZThn40_N4gg453fooEv,_ZThn24_N4gg453fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv)();
+extern void ABISELECT(_ZThn56_N4gg453fooEv,_ZThn32_N4gg453fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv)();
+extern void ABISELECT(_ZThn72_N4gg453fooEv,_ZThn40_N4gg453fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg45[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg45[0]),
+ (VTBL_ENTRY)&_ZN4gg453fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg453fooEv,_ZTv0_n20_N4gg453fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg45[];
+extern void _ZN4ee453fooEv();
+static VTBL_ENTRY _tg__ZTV4ee45__4gg45[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee45[0]),
+ (VTBL_ENTRY)&_ZN4ee453fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee453fooEv,_ZTv0_n12_N4ee453fooEv)();
+extern void ABISELECT(_ZThn24_N4ee453fooEv,_ZThn16_N4ee453fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa45__4ee45__4gg45[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee453fooEv,_ZTv0_n12_N4ee453fooEv),
+};
+extern void _ZN4ff453fooEv();
+static VTBL_ENTRY _tg__ZTV4ff45__4gg45[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff45[0]),
+ (VTBL_ENTRY)&_ZN4ff453fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv)();
+extern void ABISELECT(_ZThn16_N4ff453fooEv,_ZThn8_N4ff453fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc45__4ff45__4gg45[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv)();
+extern void ABISELECT(_ZThn32_N4ff453fooEv,_ZThn16_N4ff453fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd45__4ff45__4gg45[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff45[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv),
+};
+static VTT_ENTRY vtt_gg45[] = {
+ {&(_ZTV4gg45[6]), 6,25},
+ {&(_tg__ZTV4ee45__4gg45[3]), 3,4},
+ {&(_tg__ZTV4aa45__4ee45__4gg45[3]), 3,4},
+ {&(_ZTV4gg45[10]), 10,25},
+ {&(_ZTV4gg45[16]), 16,25},
+ {&(_ZTV4gg45[20]), 20,25},
+ {&(_ZTV4gg45[24]), 24,25},
+ {&(_tg__ZTV4ff45__4gg45[4]), 4,5},
+ {&(_tg__ZTV4cc45__4ff45__4gg45[3]), 3,4},
+ {&(_tg__ZTV4dd45__4ff45__4gg45[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg45[];
+extern VTBL_ENTRY _ZTV4gg45[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg45[];
+static VTBL_ENTRY alt_thunk_names113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff453fooEv,_ZTv0_n12_N4ff453fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff453fooEv,_ZThn16_N4ff453fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff453fooEv,_ZThn8_N4ff453fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee453fooEv,_ZTv0_n12_N4ee453fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee453fooEv,_ZThn16_N4ee453fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg453fooEv,_ZTv0_n20_N4gg453fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg453fooEv,_ZThn24_N4gg453fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg453fooEv,_ZTv0_n12_N4gg453fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg453fooEv,_ZThn40_N4gg453fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg453fooEv,_ZThn32_N4gg453fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg453fooEv,_ZThn16_N4gg453fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg45 = { "gg45", // class name
+ bases_gg45, 6,
+ &(vtc_gg45[0]), // expected_vtbl_contents
+ &(vtt_gg45[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg45),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg45),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg45),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names113,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa46 {
+ int a;
+ aa46(); // _ZN4aa46C1Ev
+ virtual void foo(); // _ZN4aa463fooEv
+ ~aa46(); // tgen
+};
+//SIG(-1 aa46) C1{ v1 Fi}
+
+
+ aa46 ::aa46(){ note_ctor("aa46", this);}
+void aa46 ::foo(){vfunc_called(this, "_ZN4aa463fooEv");}
+aa46 ::~aa46(){ note_dtor("aa46", this);} // tgen
+
+static void Test_aa46()
+{
+ extern Class_Descriptor cd_aa46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa46, buf);
+ aa46 *dp, &lv = *(dp=new (buf) aa46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa46)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa46.a");
+ test_class_info(&lv, &cd_aa46);
+ dp->~aa46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa46(Test_aa46, "aa46", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa46C1Ev();
+extern void _ZN4aa46D1Ev();
+Name_Map name_map_aa46[] = {
+ NSPAIR(_ZN4aa46C1Ev),
+ NSPAIR(_ZN4aa46D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa46[];
+extern void _ZN4aa463fooEv();
+static VTBL_ENTRY vtc_aa46[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa46[0]),
+ (VTBL_ENTRY)&_ZN4aa463fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa46[];
+extern VTBL_ENTRY _ZTV4aa46[];
+Class_Descriptor cd_aa46 = { "aa46", // class name
+ 0,0,//no base classes
+ &(vtc_aa46[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa46),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa46),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb46 {
+ int b;
+ bb46(); // _ZN4bb46C1Ev
+ virtual void foo(); // _ZN4bb463fooEv
+ ~bb46(); // tgen
+};
+//SIG(-1 bb46) C1{ v1 Fi}
+
+
+ bb46 ::bb46(){ note_ctor("bb46", this);}
+void bb46 ::foo(){vfunc_called(this, "_ZN4bb463fooEv");}
+bb46 ::~bb46(){ note_dtor("bb46", this);} // tgen
+
+static void Test_bb46()
+{
+ extern Class_Descriptor cd_bb46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb46, buf);
+ bb46 *dp, &lv = *(dp=new (buf) bb46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb46)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb46.b");
+ test_class_info(&lv, &cd_bb46);
+ dp->~bb46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb46(Test_bb46, "bb46", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb46C1Ev();
+extern void _ZN4bb46D1Ev();
+Name_Map name_map_bb46[] = {
+ NSPAIR(_ZN4bb46C1Ev),
+ NSPAIR(_ZN4bb46D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb46[];
+extern void _ZN4bb463fooEv();
+static VTBL_ENTRY vtc_bb46[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb46[0]),
+ (VTBL_ENTRY)&_ZN4bb463fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb46[];
+extern VTBL_ENTRY _ZTV4bb46[];
+Class_Descriptor cd_bb46 = { "bb46", // class name
+ 0,0,//no base classes
+ &(vtc_bb46[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb46),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb46),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc46 {
+ int c;
+ cc46(); // _ZN4cc46C1Ev
+ virtual void foo(); // _ZN4cc463fooEv
+ ~cc46(); // tgen
+};
+//SIG(-1 cc46) C1{ v1 Fi}
+
+
+ cc46 ::cc46(){ note_ctor("cc46", this);}
+void cc46 ::foo(){vfunc_called(this, "_ZN4cc463fooEv");}
+cc46 ::~cc46(){ note_dtor("cc46", this);} // tgen
+
+static void Test_cc46()
+{
+ extern Class_Descriptor cd_cc46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc46, buf);
+ cc46 *dp, &lv = *(dp=new (buf) cc46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc46)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc46.c");
+ test_class_info(&lv, &cd_cc46);
+ dp->~cc46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc46(Test_cc46, "cc46", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc46C1Ev();
+extern void _ZN4cc46D1Ev();
+Name_Map name_map_cc46[] = {
+ NSPAIR(_ZN4cc46C1Ev),
+ NSPAIR(_ZN4cc46D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc46[];
+extern void _ZN4cc463fooEv();
+static VTBL_ENTRY vtc_cc46[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc46[0]),
+ (VTBL_ENTRY)&_ZN4cc463fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc46[];
+extern VTBL_ENTRY _ZTV4cc46[];
+Class_Descriptor cd_cc46 = { "cc46", // class name
+ 0,0,//no base classes
+ &(vtc_cc46[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc46),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc46),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd46 {
+ int d;
+ dd46(); // _ZN4dd46C1Ev
+ virtual void foo(); // _ZN4dd463fooEv
+ ~dd46(); // tgen
+};
+//SIG(-1 dd46) C1{ v1 Fi}
+
+
+ dd46 ::dd46(){ note_ctor("dd46", this);}
+void dd46 ::foo(){vfunc_called(this, "_ZN4dd463fooEv");}
+dd46 ::~dd46(){ note_dtor("dd46", this);} // tgen
+
+static void Test_dd46()
+{
+ extern Class_Descriptor cd_dd46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd46, buf);
+ dd46 *dp, &lv = *(dp=new (buf) dd46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd46)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd46.d");
+ test_class_info(&lv, &cd_dd46);
+ dp->~dd46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd46(Test_dd46, "dd46", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd46C1Ev();
+extern void _ZN4dd46D1Ev();
+Name_Map name_map_dd46[] = {
+ NSPAIR(_ZN4dd46C1Ev),
+ NSPAIR(_ZN4dd46D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd46[];
+extern void _ZN4dd463fooEv();
+static VTBL_ENTRY vtc_dd46[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd46[0]),
+ (VTBL_ENTRY)&_ZN4dd463fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd46[];
+extern VTBL_ENTRY _ZTV4dd46[];
+Class_Descriptor cd_dd46 = { "dd46", // class name
+ 0,0,//no base classes
+ &(vtc_dd46[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd46),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd46),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46 : aa46 , virtual bb46 {
+ int e;
+ ee46(const ABISELECT(__tsi64,int) *const *); // _ZN4ee46C2Ev
+ virtual void foo(); // _ZN4ee463fooEv
+ ~ee46(); // tgen
+ ee46(); // tgen
+};
+//SIG(-1 ee46) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee46 ::ee46(const ABISELECT(__tsi64,int) *const *){}
+void ee46 ::foo(){vfunc_called(this, "_ZN4ee463fooEv");}
+ee46 ::~ee46(){ note_dtor("ee46", this);} // tgen
+ee46 ::ee46(){ note_ctor("ee46", this);} // tgen
+
+static void Test_ee46()
+{
+ extern Class_Descriptor cd_ee46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee46, buf);
+ ee46 *dp, &lv = *(dp=new (buf) ee46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46)");
+ check_base_class_offset(lv, (aa46*), 0, "ee46");
+ check_base_class_offset(lv, (bb46*), ABISELECT(16,12), "ee46");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee46.e");
+ test_class_info(&lv, &cd_ee46);
+ dp->~ee46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46(Test_ee46, "ee46", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee46C1Ev();
+extern void _ZN4ee46D1Ev();
+Name_Map name_map_ee46[] = {
+ NSPAIR(_ZN4ee46C1Ev),
+ NSPAIR(_ZN4ee46D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa46;
+extern VTBL_ENTRY _ZTI4aa46[];
+extern VTBL_ENTRY _ZTV4aa46[];
+extern Class_Descriptor cd_bb46;
+extern VTBL_ENTRY _ZTI4bb46[];
+extern VTBL_ENTRY _ZTV4bb46[];
+static Base_Class bases_ee46[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa46, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb46, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee46[];
+extern void _ZN4ee463fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee463fooEv,_ZTv0_n12_N4ee463fooEv)();
+extern void ABISELECT(_ZThn16_N4ee463fooEv,_ZThn12_N4ee463fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee46[0]),
+ (VTBL_ENTRY)&_ZN4ee463fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee463fooEv,_ZTv0_n12_N4ee463fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee46[];
+static VTT_ENTRY vtt_ee46[] = {
+ {&(_ZTV4ee46[3]), 3,8},
+ {&(_ZTV4ee46[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee46[];
+extern VTBL_ENTRY _ZTV4ee46[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee46[];
+static VTBL_ENTRY alt_thunk_names114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee463fooEv,_ZTv0_n12_N4ee463fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee463fooEv,_ZThn12_N4ee463fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46 = { "ee46", // class name
+ bases_ee46, 2,
+ &(vtc_ee46[0]), // expected_vtbl_contents
+ &(vtt_ee46[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee46),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee46),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee46),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff46 : virtual cc46 , virtual dd46 {
+ int f;
+ ff46(const ABISELECT(__tsi64,int) *const *); // _ZN4ff46C2Ev
+ virtual void foo(); // _ZN4ff463fooEv
+ ~ff46(); // tgen
+ ff46(); // tgen
+};
+//SIG(-1 ff46) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff46 ::ff46(const ABISELECT(__tsi64,int) *const *){}
+void ff46 ::foo(){vfunc_called(this, "_ZN4ff463fooEv");}
+ff46 ::~ff46(){ note_dtor("ff46", this);} // tgen
+ff46 ::ff46(){ note_ctor("ff46", this);} // tgen
+
+static void Test_ff46()
+{
+ extern Class_Descriptor cd_ff46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff46, buf);
+ ff46 *dp, &lv = *(dp=new (buf) ff46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff46)");
+ check_base_class_offset(lv, (cc46*), ABISELECT(16,8), "ff46");
+ check_base_class_offset(lv, (dd46*), ABISELECT(32,16), "ff46");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff46.f");
+ test_class_info(&lv, &cd_ff46);
+ dp->~ff46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff46(Test_ff46, "ff46", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff46C1Ev();
+extern void _ZN4ff46D1Ev();
+Name_Map name_map_ff46[] = {
+ NSPAIR(_ZN4ff46C1Ev),
+ NSPAIR(_ZN4ff46D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc46;
+extern VTBL_ENTRY _ZTI4cc46[];
+extern VTBL_ENTRY _ZTV4cc46[];
+extern Class_Descriptor cd_dd46;
+extern VTBL_ENTRY _ZTI4dd46[];
+extern VTBL_ENTRY _ZTV4dd46[];
+static Base_Class bases_ff46[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc46, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd46, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff46[];
+extern void _ZN4ff463fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv)();
+extern void ABISELECT(_ZThn16_N4ff463fooEv,_ZThn8_N4ff463fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv)();
+extern void ABISELECT(_ZThn32_N4ff463fooEv,_ZThn16_N4ff463fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff46[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff46[0]),
+ (VTBL_ENTRY)&_ZN4ff463fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff46[];
+static VTT_ENTRY vtt_ff46[] = {
+ {&(_ZTV4ff46[4]), 4,13},
+ {&(_ZTV4ff46[8]), 8,13},
+ {&(_ZTV4ff46[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff46[];
+extern VTBL_ENTRY _ZTV4ff46[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff46[];
+static VTBL_ENTRY alt_thunk_names115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff463fooEv,_ZThn16_N4ff463fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff463fooEv,_ZThn8_N4ff463fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff46 = { "ff46", // class name
+ bases_ff46, 2,
+ &(vtc_ff46[0]), // expected_vtbl_contents
+ &(vtt_ff46[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff46),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff46),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff46),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg46 : ee46 , virtual ff46 {
+ int g;
+ gg46(const ABISELECT(__tsi64,int) *const *); // _ZN4gg46C2Ev
+ virtual void foo(); // _ZN4gg463fooEv
+ ~gg46(); // tgen
+ gg46(); // tgen
+};
+//SIG(1 gg46) C1{ BC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg46 ::gg46(const ABISELECT(__tsi64,int) *const *){}
+void gg46 ::foo(){vfunc_called(this, "_ZN4gg463fooEv");}
+gg46 ::~gg46(){ note_dtor("gg46", this);} // tgen
+gg46 ::gg46(){ note_ctor("gg46", this);} // tgen
+
+static void Test_gg46()
+{
+ extern Class_Descriptor cd_gg46;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(12,13)];
+ init_test(&cd_gg46, buf);
+ gg46 *dp, &lv = *(dp=new (buf) gg46());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(88,48), "sizeof(gg46)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg46)");
+ check_base_class_offset(lv, (aa46*)(ee46*), 0, "gg46");
+ check_base_class_offset(lv, (bb46*)(ee46*), ABISELECT(24,16), "gg46");
+ check_base_class_offset(lv, (ee46*), 0, "gg46");
+ check_base_class_offset(lv, (cc46*)(ff46*), ABISELECT(56,32), "gg46");
+ check_base_class_offset(lv, (dd46*)(ff46*), ABISELECT(72,40), "gg46");
+ check_base_class_offset(lv, (ff46*), ABISELECT(40,24), "gg46");
+ check_field_offset(lv, g, ABISELECT(16,12), "gg46.g");
+ test_class_info(&lv, &cd_gg46);
+ dp->~gg46();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg46(Test_gg46, "gg46", ABISELECT(88,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg46C1Ev();
+extern void _ZN4gg46D1Ev();
+Name_Map name_map_gg46[] = {
+ NSPAIR(_ZN4gg46C1Ev),
+ NSPAIR(_ZN4gg46D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa46;
+extern VTBL_ENTRY _ZTI4aa46[];
+extern VTBL_ENTRY _ZTV4aa46[];
+extern Class_Descriptor cd_bb46;
+extern VTBL_ENTRY _ZTI4bb46[];
+extern VTBL_ENTRY _ZTV4bb46[];
+extern Class_Descriptor cd_ee46;
+extern VTBL_ENTRY _ZTI4ee46[];
+extern VTBL_ENTRY _ZTV4ee46[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee46[];
+extern Class_Descriptor cd_cc46;
+extern VTBL_ENTRY _ZTI4cc46[];
+extern VTBL_ENTRY _ZTV4cc46[];
+extern Class_Descriptor cd_dd46;
+extern VTBL_ENTRY _ZTI4dd46[];
+extern VTBL_ENTRY _ZTV4dd46[];
+extern Class_Descriptor cd_ff46;
+extern VTBL_ENTRY _ZTI4ff46[];
+extern VTBL_ENTRY _ZTV4ff46[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff46[];
+static Base_Class bases_gg46[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa46, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb46, ABISELECT(24,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee46, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc46, ABISELECT(56,32), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd46, ABISELECT(72,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff46, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg46[];
+extern void _ZN4gg463fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv)();
+extern void ABISELECT(_ZThn24_N4gg463fooEv,_ZThn16_N4gg463fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N4gg463fooEv,_ZTv0_n20_N4gg463fooEv)();
+extern void ABISELECT(_ZThn40_N4gg463fooEv,_ZThn24_N4gg463fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv)();
+extern void ABISELECT(_ZThn56_N4gg463fooEv,_ZThn32_N4gg463fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv)();
+extern void ABISELECT(_ZThn72_N4gg463fooEv,_ZThn40_N4gg463fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg46[] = {
+ ABISELECT(72,40),
+ ABISELECT(56,32),
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg46[0]),
+ (VTBL_ENTRY)&_ZN4gg463fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4gg46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI4gg46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg463fooEv,_ZTv0_n20_N4gg463fooEv),
+ ABISELECT(-56,-32),
+ ABISELECT(-56,-32),
+ (VTBL_ENTRY)&(_ZTI4gg46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv),
+ ABISELECT(-72,-40),
+ ABISELECT(-72,-40),
+ (VTBL_ENTRY)&(_ZTI4gg46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg46[];
+extern void _ZN4ee463fooEv();
+static VTBL_ENTRY _tg__ZTV4ee46__4gg46[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee46[0]),
+ (VTBL_ENTRY)&_ZN4ee463fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee463fooEv,_ZTv0_n12_N4ee463fooEv)();
+extern void ABISELECT(_ZThn24_N4ee463fooEv,_ZThn16_N4ee463fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb46__4ee46__4gg46[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4ee46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee463fooEv,_ZTv0_n12_N4ee463fooEv),
+};
+extern void _ZN4ff463fooEv();
+static VTBL_ENTRY _tg__ZTV4ff46__4gg46[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff46[0]),
+ (VTBL_ENTRY)&_ZN4ff463fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv)();
+extern void ABISELECT(_ZThn16_N4ff463fooEv,_ZThn8_N4ff463fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc46__4ff46__4gg46[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv)();
+extern void ABISELECT(_ZThn32_N4ff463fooEv,_ZThn16_N4ff463fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd46__4ff46__4gg46[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff46[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv),
+};
+static VTT_ENTRY vtt_gg46[] = {
+ {&(_ZTV4gg46[6]), 6,25},
+ {&(_tg__ZTV4ee46__4gg46[3]), 3,4},
+ {&(_tg__ZTV4bb46__4ee46__4gg46[3]), 3,4},
+ {&(_ZTV4gg46[10]), 10,25},
+ {&(_ZTV4gg46[16]), 16,25},
+ {&(_ZTV4gg46[20]), 20,25},
+ {&(_ZTV4gg46[24]), 24,25},
+ {&(_tg__ZTV4ff46__4gg46[4]), 4,5},
+ {&(_tg__ZTV4cc46__4ff46__4gg46[3]), 3,4},
+ {&(_tg__ZTV4dd46__4ff46__4gg46[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg46[];
+extern VTBL_ENTRY _ZTV4gg46[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg46[];
+static VTBL_ENTRY alt_thunk_names116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff463fooEv,_ZTv0_n12_N4ff463fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff463fooEv,_ZThn16_N4ff463fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff463fooEv,_ZThn8_N4ff463fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee463fooEv,_ZTv0_n12_N4ee463fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4ee463fooEv,_ZThn16_N4ee463fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg463fooEv,_ZTv0_n20_N4gg463fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N4gg463fooEv,_ZThn24_N4gg463fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg463fooEv,_ZTv0_n12_N4gg463fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn72_N4gg463fooEv,_ZThn40_N4gg463fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn56_N4gg463fooEv,_ZThn32_N4gg463fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4gg463fooEv,_ZThn16_N4gg463fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg46 = { "gg46", // class name
+ bases_gg46, 6,
+ &(vtc_gg46[0]), // expected_vtbl_contents
+ &(vtt_gg46[0]), // expected_vtt_contents
+ ABISELECT(88,48), // object size
+ NSPAIRA(_ZTI4gg46),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg46),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg46),10, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa47 {
+ int a;
+ aa47(); // _ZN4aa47C1Ev
+ virtual void foo(); // _ZN4aa473fooEv
+ ~aa47(); // tgen
+};
+//SIG(-1 aa47) C1{ v1 Fi}
+
+
+ aa47 ::aa47(){ note_ctor("aa47", this);}
+void aa47 ::foo(){vfunc_called(this, "_ZN4aa473fooEv");}
+aa47 ::~aa47(){ note_dtor("aa47", this);} // tgen
+
+static void Test_aa47()
+{
+ extern Class_Descriptor cd_aa47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa47, buf);
+ aa47 *dp, &lv = *(dp=new (buf) aa47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa47)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa47.a");
+ test_class_info(&lv, &cd_aa47);
+ dp->~aa47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa47(Test_aa47, "aa47", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa47C1Ev();
+extern void _ZN4aa47D1Ev();
+Name_Map name_map_aa47[] = {
+ NSPAIR(_ZN4aa47C1Ev),
+ NSPAIR(_ZN4aa47D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa47[];
+extern void _ZN4aa473fooEv();
+static VTBL_ENTRY vtc_aa47[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa47[0]),
+ (VTBL_ENTRY)&_ZN4aa473fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa47[];
+extern VTBL_ENTRY _ZTV4aa47[];
+Class_Descriptor cd_aa47 = { "aa47", // class name
+ 0,0,//no base classes
+ &(vtc_aa47[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa47),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa47),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb47 {
+ int b;
+ bb47(); // _ZN4bb47C1Ev
+ virtual void foo(); // _ZN4bb473fooEv
+ ~bb47(); // tgen
+};
+//SIG(-1 bb47) C1{ v1 Fi}
+
+
+ bb47 ::bb47(){ note_ctor("bb47", this);}
+void bb47 ::foo(){vfunc_called(this, "_ZN4bb473fooEv");}
+bb47 ::~bb47(){ note_dtor("bb47", this);} // tgen
+
+static void Test_bb47()
+{
+ extern Class_Descriptor cd_bb47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb47, buf);
+ bb47 *dp, &lv = *(dp=new (buf) bb47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb47)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb47.b");
+ test_class_info(&lv, &cd_bb47);
+ dp->~bb47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb47(Test_bb47, "bb47", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb47C1Ev();
+extern void _ZN4bb47D1Ev();
+Name_Map name_map_bb47[] = {
+ NSPAIR(_ZN4bb47C1Ev),
+ NSPAIR(_ZN4bb47D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb47[];
+extern void _ZN4bb473fooEv();
+static VTBL_ENTRY vtc_bb47[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb47[0]),
+ (VTBL_ENTRY)&_ZN4bb473fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb47[];
+extern VTBL_ENTRY _ZTV4bb47[];
+Class_Descriptor cd_bb47 = { "bb47", // class name
+ 0,0,//no base classes
+ &(vtc_bb47[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb47),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb47),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc47 {
+ int c;
+ cc47(); // _ZN4cc47C1Ev
+ virtual void foo(); // _ZN4cc473fooEv
+ ~cc47(); // tgen
+};
+//SIG(-1 cc47) C1{ v1 Fi}
+
+
+ cc47 ::cc47(){ note_ctor("cc47", this);}
+void cc47 ::foo(){vfunc_called(this, "_ZN4cc473fooEv");}
+cc47 ::~cc47(){ note_dtor("cc47", this);} // tgen
+
+static void Test_cc47()
+{
+ extern Class_Descriptor cd_cc47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc47, buf);
+ cc47 *dp, &lv = *(dp=new (buf) cc47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc47)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc47.c");
+ test_class_info(&lv, &cd_cc47);
+ dp->~cc47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc47(Test_cc47, "cc47", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc47C1Ev();
+extern void _ZN4cc47D1Ev();
+Name_Map name_map_cc47[] = {
+ NSPAIR(_ZN4cc47C1Ev),
+ NSPAIR(_ZN4cc47D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc47[];
+extern void _ZN4cc473fooEv();
+static VTBL_ENTRY vtc_cc47[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc47[0]),
+ (VTBL_ENTRY)&_ZN4cc473fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc47[];
+extern VTBL_ENTRY _ZTV4cc47[];
+Class_Descriptor cd_cc47 = { "cc47", // class name
+ 0,0,//no base classes
+ &(vtc_cc47[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc47),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc47),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd47 {
+ int d;
+ dd47(); // _ZN4dd47C1Ev
+ virtual void foo(); // _ZN4dd473fooEv
+ ~dd47(); // tgen
+};
+//SIG(-1 dd47) C1{ v1 Fi}
+
+
+ dd47 ::dd47(){ note_ctor("dd47", this);}
+void dd47 ::foo(){vfunc_called(this, "_ZN4dd473fooEv");}
+dd47 ::~dd47(){ note_dtor("dd47", this);} // tgen
+
+static void Test_dd47()
+{
+ extern Class_Descriptor cd_dd47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd47, buf);
+ dd47 *dp, &lv = *(dp=new (buf) dd47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd47)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd47.d");
+ test_class_info(&lv, &cd_dd47);
+ dp->~dd47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd47(Test_dd47, "dd47", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd47C1Ev();
+extern void _ZN4dd47D1Ev();
+Name_Map name_map_dd47[] = {
+ NSPAIR(_ZN4dd47C1Ev),
+ NSPAIR(_ZN4dd47D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd47[];
+extern void _ZN4dd473fooEv();
+static VTBL_ENTRY vtc_dd47[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd47[0]),
+ (VTBL_ENTRY)&_ZN4dd473fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd47[];
+extern VTBL_ENTRY _ZTV4dd47[];
+Class_Descriptor cd_dd47 = { "dd47", // class name
+ 0,0,//no base classes
+ &(vtc_dd47[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd47),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd47),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47 : virtual aa47 , virtual bb47 {
+ int e;
+ ee47(const ABISELECT(__tsi64,int) *const *); // _ZN4ee47C2Ev
+ virtual void foo(); // _ZN4ee473fooEv
+ ~ee47(); // tgen
+ ee47(); // tgen
+};
+//SIG(-1 ee47) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee47 ::ee47(const ABISELECT(__tsi64,int) *const *){}
+void ee47 ::foo(){vfunc_called(this, "_ZN4ee473fooEv");}
+ee47 ::~ee47(){ note_dtor("ee47", this);} // tgen
+ee47 ::ee47(){ note_ctor("ee47", this);} // tgen
+
+static void Test_ee47()
+{
+ extern Class_Descriptor cd_ee47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee47, buf);
+ ee47 *dp, &lv = *(dp=new (buf) ee47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47)");
+ check_base_class_offset(lv, (aa47*), ABISELECT(16,8), "ee47");
+ check_base_class_offset(lv, (bb47*), ABISELECT(32,16), "ee47");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee47.e");
+ test_class_info(&lv, &cd_ee47);
+ dp->~ee47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47(Test_ee47, "ee47", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee47C1Ev();
+extern void _ZN4ee47D1Ev();
+Name_Map name_map_ee47[] = {
+ NSPAIR(_ZN4ee47C1Ev),
+ NSPAIR(_ZN4ee47D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa47;
+extern VTBL_ENTRY _ZTI4aa47[];
+extern VTBL_ENTRY _ZTV4aa47[];
+extern Class_Descriptor cd_bb47;
+extern VTBL_ENTRY _ZTI4bb47[];
+extern VTBL_ENTRY _ZTV4bb47[];
+static Base_Class bases_ee47[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa47, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb47, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee47[];
+extern void _ZN4ee473fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv)();
+extern void ABISELECT(_ZThn16_N4ee473fooEv,_ZThn8_N4ee473fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv)();
+extern void ABISELECT(_ZThn32_N4ee473fooEv,_ZThn16_N4ee473fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee47[0]),
+ (VTBL_ENTRY)&_ZN4ee473fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee47[];
+static VTT_ENTRY vtt_ee47[] = {
+ {&(_ZTV4ee47[4]), 4,13},
+ {&(_ZTV4ee47[8]), 8,13},
+ {&(_ZTV4ee47[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee47[];
+extern VTBL_ENTRY _ZTV4ee47[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee47[];
+static VTBL_ENTRY alt_thunk_names117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee473fooEv,_ZThn16_N4ee473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee473fooEv,_ZThn8_N4ee473fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47 = { "ee47", // class name
+ bases_ee47, 2,
+ &(vtc_ee47[0]), // expected_vtbl_contents
+ &(vtt_ee47[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee47),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee47),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee47),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff47 : virtual cc47 , virtual dd47 {
+ int f;
+ ff47(const ABISELECT(__tsi64,int) *const *); // _ZN4ff47C2Ev
+ virtual void foo(); // _ZN4ff473fooEv
+ ~ff47(); // tgen
+ ff47(); // tgen
+};
+//SIG(-1 ff47) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff47 ::ff47(const ABISELECT(__tsi64,int) *const *){}
+void ff47 ::foo(){vfunc_called(this, "_ZN4ff473fooEv");}
+ff47 ::~ff47(){ note_dtor("ff47", this);} // tgen
+ff47 ::ff47(){ note_ctor("ff47", this);} // tgen
+
+static void Test_ff47()
+{
+ extern Class_Descriptor cd_ff47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff47, buf);
+ ff47 *dp, &lv = *(dp=new (buf) ff47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff47)");
+ check_base_class_offset(lv, (cc47*), ABISELECT(16,8), "ff47");
+ check_base_class_offset(lv, (dd47*), ABISELECT(32,16), "ff47");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff47.f");
+ test_class_info(&lv, &cd_ff47);
+ dp->~ff47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff47(Test_ff47, "ff47", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff47C1Ev();
+extern void _ZN4ff47D1Ev();
+Name_Map name_map_ff47[] = {
+ NSPAIR(_ZN4ff47C1Ev),
+ NSPAIR(_ZN4ff47D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc47;
+extern VTBL_ENTRY _ZTI4cc47[];
+extern VTBL_ENTRY _ZTV4cc47[];
+extern Class_Descriptor cd_dd47;
+extern VTBL_ENTRY _ZTI4dd47[];
+extern VTBL_ENTRY _ZTV4dd47[];
+static Base_Class bases_ff47[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc47, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd47, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff47[];
+extern void _ZN4ff473fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv)();
+extern void ABISELECT(_ZThn16_N4ff473fooEv,_ZThn8_N4ff473fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv)();
+extern void ABISELECT(_ZThn32_N4ff473fooEv,_ZThn16_N4ff473fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff47[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff47[0]),
+ (VTBL_ENTRY)&_ZN4ff473fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff47[];
+static VTT_ENTRY vtt_ff47[] = {
+ {&(_ZTV4ff47[4]), 4,13},
+ {&(_ZTV4ff47[8]), 8,13},
+ {&(_ZTV4ff47[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff47[];
+extern VTBL_ENTRY _ZTV4ff47[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff47[];
+static VTBL_ENTRY alt_thunk_names118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff473fooEv,_ZThn16_N4ff473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff473fooEv,_ZThn8_N4ff473fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff47 = { "ff47", // class name
+ bases_ff47, 2,
+ &(vtc_ff47[0]), // expected_vtbl_contents
+ &(vtt_ff47[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff47),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff47),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff47),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg47 : ee47 , virtual ff47 {
+ int g;
+ gg47(const ABISELECT(__tsi64,int) *const *); // _ZN4gg47C2Ev
+ virtual void foo(); // _ZN4gg473fooEv
+ ~gg47(); // tgen
+ gg47(); // tgen
+};
+//SIG(1 gg47) C1{ BC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg47 ::gg47(const ABISELECT(__tsi64,int) *const *){}
+void gg47 ::foo(){vfunc_called(this, "_ZN4gg473fooEv");}
+gg47 ::~gg47(){ note_dtor("gg47", this);} // tgen
+gg47 ::gg47(){ note_ctor("gg47", this);} // tgen
+
+static void Test_gg47()
+{
+ extern Class_Descriptor cd_gg47;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg47, buf);
+ gg47 *dp, &lv = *(dp=new (buf) gg47());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg47)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg47)");
+ check_base_class_offset(lv, (aa47*)(ee47*), ABISELECT(16,12), "gg47");
+ check_base_class_offset(lv, (bb47*)(ee47*), ABISELECT(32,20), "gg47");
+ check_base_class_offset(lv, (ee47*), 0, "gg47");
+ check_base_class_offset(lv, (cc47*)(ff47*), ABISELECT(64,36), "gg47");
+ check_base_class_offset(lv, (dd47*)(ff47*), ABISELECT(80,44), "gg47");
+ check_base_class_offset(lv, (ff47*), ABISELECT(48,28), "gg47");
+ check_field_offset(lv, g, ABISELECT(12,8), "gg47.g");
+ test_class_info(&lv, &cd_gg47);
+ dp->~gg47();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg47(Test_gg47, "gg47", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg47C1Ev();
+extern void _ZN4gg47D1Ev();
+Name_Map name_map_gg47[] = {
+ NSPAIR(_ZN4gg47C1Ev),
+ NSPAIR(_ZN4gg47D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa47;
+extern VTBL_ENTRY _ZTI4aa47[];
+extern VTBL_ENTRY _ZTV4aa47[];
+extern Class_Descriptor cd_bb47;
+extern VTBL_ENTRY _ZTI4bb47[];
+extern VTBL_ENTRY _ZTV4bb47[];
+extern Class_Descriptor cd_ee47;
+extern VTBL_ENTRY _ZTI4ee47[];
+extern VTBL_ENTRY _ZTV4ee47[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee47[];
+extern Class_Descriptor cd_cc47;
+extern VTBL_ENTRY _ZTI4cc47[];
+extern VTBL_ENTRY _ZTV4cc47[];
+extern Class_Descriptor cd_dd47;
+extern VTBL_ENTRY _ZTI4dd47[];
+extern VTBL_ENTRY _ZTV4dd47[];
+extern Class_Descriptor cd_ff47;
+extern VTBL_ENTRY _ZTI4ff47[];
+extern VTBL_ENTRY _ZTV4ff47[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff47[];
+static Base_Class bases_gg47[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa47, ABISELECT(16,12), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb47, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee47, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_cc47, ABISELECT(64,36), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd47, ABISELECT(80,44), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff47, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg47[];
+extern void _ZN4gg473fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv)();
+extern void ABISELECT(_ZThn16_N4gg473fooEv,_ZThn12_N4gg473fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv)();
+extern void ABISELECT(_ZThn32_N4gg473fooEv,_ZThn20_N4gg473fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N4gg473fooEv,_ZTv0_n20_N4gg473fooEv)();
+extern void ABISELECT(_ZThn48_N4gg473fooEv,_ZThn28_N4gg473fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv)();
+extern void ABISELECT(_ZThn64_N4gg473fooEv,_ZThn36_N4gg473fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv)();
+extern void ABISELECT(_ZThn80_N4gg473fooEv,_ZThn44_N4gg473fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg47[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg47[0]),
+ (VTBL_ENTRY)&_ZN4gg473fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4gg47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg473fooEv,_ZTv0_n20_N4gg473fooEv),
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg47[];
+extern void _ZN4ee473fooEv();
+static VTBL_ENTRY _tg__ZTV4ee47__4gg47[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee47[0]),
+ (VTBL_ENTRY)&_ZN4ee473fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv)();
+extern void ABISELECT(_ZThn16_N4ee473fooEv,_ZThn12_N4ee473fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa47__4ee47__4gg47[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv)();
+extern void ABISELECT(_ZThn32_N4ee473fooEv,_ZThn20_N4ee473fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb47__4ee47__4gg47[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4ee47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv),
+};
+extern void _ZN4ff473fooEv();
+static VTBL_ENTRY _tg__ZTV4ff47__4gg47[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff47[0]),
+ (VTBL_ENTRY)&_ZN4ff473fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv)();
+extern void ABISELECT(_ZThn16_N4ff473fooEv,_ZThn8_N4ff473fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc47__4ff47__4gg47[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv)();
+extern void ABISELECT(_ZThn32_N4ff473fooEv,_ZThn16_N4ff473fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd47__4ff47__4gg47[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff47[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv),
+};
+static VTT_ENTRY vtt_gg47[] = {
+ {&(_ZTV4gg47[7]), 7,30},
+ {&(_tg__ZTV4ee47__4gg47[4]), 4,5},
+ {&(_tg__ZTV4aa47__4ee47__4gg47[3]), 3,4},
+ {&(_tg__ZTV4bb47__4ee47__4gg47[3]), 3,4},
+ {&(_ZTV4gg47[11]), 11,30},
+ {&(_ZTV4gg47[15]), 15,30},
+ {&(_ZTV4gg47[21]), 21,30},
+ {&(_ZTV4gg47[25]), 25,30},
+ {&(_ZTV4gg47[29]), 29,30},
+ {&(_tg__ZTV4ff47__4gg47[4]), 4,5},
+ {&(_tg__ZTV4cc47__4ff47__4gg47[3]), 3,4},
+ {&(_tg__ZTV4dd47__4ff47__4gg47[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg47[];
+extern VTBL_ENTRY _ZTV4gg47[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg47[];
+static VTBL_ENTRY alt_thunk_names119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff473fooEv,_ZTv0_n12_N4ff473fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff473fooEv,_ZThn16_N4ff473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff473fooEv,_ZThn8_N4ff473fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee473fooEv,_ZTv0_n12_N4ee473fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee473fooEv,_ZThn20_N4ee473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee473fooEv,_ZThn12_N4ee473fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg473fooEv,_ZTv0_n20_N4gg473fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg473fooEv,_ZThn28_N4gg473fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg473fooEv,_ZTv0_n12_N4gg473fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg473fooEv,_ZThn44_N4gg473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg473fooEv,_ZThn36_N4gg473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg473fooEv,_ZThn20_N4gg473fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg473fooEv,_ZThn12_N4gg473fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg47 = { "gg47", // class name
+ bases_gg47, 6,
+ &(vtc_gg47[0]), // expected_vtbl_contents
+ &(vtt_gg47[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg47),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg47),30, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg47),12, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa48 {
+ int a;
+ aa48(); // _ZN4aa48C1Ev
+ virtual void foo(); // _ZN4aa483fooEv
+ ~aa48(); // tgen
+};
+//SIG(-1 aa48) C1{ v1 Fi}
+
+
+ aa48 ::aa48(){ note_ctor("aa48", this);}
+void aa48 ::foo(){vfunc_called(this, "_ZN4aa483fooEv");}
+aa48 ::~aa48(){ note_dtor("aa48", this);} // tgen
+
+static void Test_aa48()
+{
+ extern Class_Descriptor cd_aa48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa48, buf);
+ aa48 *dp, &lv = *(dp=new (buf) aa48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa48)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa48.a");
+ test_class_info(&lv, &cd_aa48);
+ dp->~aa48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa48(Test_aa48, "aa48", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa48C1Ev();
+extern void _ZN4aa48D1Ev();
+Name_Map name_map_aa48[] = {
+ NSPAIR(_ZN4aa48C1Ev),
+ NSPAIR(_ZN4aa48D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa48[];
+extern void _ZN4aa483fooEv();
+static VTBL_ENTRY vtc_aa48[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa48[0]),
+ (VTBL_ENTRY)&_ZN4aa483fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa48[];
+extern VTBL_ENTRY _ZTV4aa48[];
+Class_Descriptor cd_aa48 = { "aa48", // class name
+ 0,0,//no base classes
+ &(vtc_aa48[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa48),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa48),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb48 {
+ int b;
+ bb48(); // _ZN4bb48C1Ev
+ virtual void foo(); // _ZN4bb483fooEv
+ ~bb48(); // tgen
+};
+//SIG(-1 bb48) C1{ v1 Fi}
+
+
+ bb48 ::bb48(){ note_ctor("bb48", this);}
+void bb48 ::foo(){vfunc_called(this, "_ZN4bb483fooEv");}
+bb48 ::~bb48(){ note_dtor("bb48", this);} // tgen
+
+static void Test_bb48()
+{
+ extern Class_Descriptor cd_bb48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb48, buf);
+ bb48 *dp, &lv = *(dp=new (buf) bb48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb48)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb48.b");
+ test_class_info(&lv, &cd_bb48);
+ dp->~bb48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb48(Test_bb48, "bb48", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb48C1Ev();
+extern void _ZN4bb48D1Ev();
+Name_Map name_map_bb48[] = {
+ NSPAIR(_ZN4bb48C1Ev),
+ NSPAIR(_ZN4bb48D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb48[];
+extern void _ZN4bb483fooEv();
+static VTBL_ENTRY vtc_bb48[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb48[0]),
+ (VTBL_ENTRY)&_ZN4bb483fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb48[];
+extern VTBL_ENTRY _ZTV4bb48[];
+Class_Descriptor cd_bb48 = { "bb48", // class name
+ 0,0,//no base classes
+ &(vtc_bb48[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb48),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb48),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc48 {
+ int c;
+ cc48(); // _ZN4cc48C1Ev
+ virtual void foo(); // _ZN4cc483fooEv
+ ~cc48(); // tgen
+};
+//SIG(-1 cc48) C1{ v1 Fi}
+
+
+ cc48 ::cc48(){ note_ctor("cc48", this);}
+void cc48 ::foo(){vfunc_called(this, "_ZN4cc483fooEv");}
+cc48 ::~cc48(){ note_dtor("cc48", this);} // tgen
+
+static void Test_cc48()
+{
+ extern Class_Descriptor cd_cc48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc48, buf);
+ cc48 *dp, &lv = *(dp=new (buf) cc48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc48)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc48.c");
+ test_class_info(&lv, &cd_cc48);
+ dp->~cc48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc48(Test_cc48, "cc48", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc48C1Ev();
+extern void _ZN4cc48D1Ev();
+Name_Map name_map_cc48[] = {
+ NSPAIR(_ZN4cc48C1Ev),
+ NSPAIR(_ZN4cc48D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc48[];
+extern void _ZN4cc483fooEv();
+static VTBL_ENTRY vtc_cc48[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc48[0]),
+ (VTBL_ENTRY)&_ZN4cc483fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc48[];
+extern VTBL_ENTRY _ZTV4cc48[];
+Class_Descriptor cd_cc48 = { "cc48", // class name
+ 0,0,//no base classes
+ &(vtc_cc48[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc48),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc48),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd48 {
+ int d;
+ dd48(); // _ZN4dd48C1Ev
+ virtual void foo(); // _ZN4dd483fooEv
+ ~dd48(); // tgen
+};
+//SIG(-1 dd48) C1{ v1 Fi}
+
+
+ dd48 ::dd48(){ note_ctor("dd48", this);}
+void dd48 ::foo(){vfunc_called(this, "_ZN4dd483fooEv");}
+dd48 ::~dd48(){ note_dtor("dd48", this);} // tgen
+
+static void Test_dd48()
+{
+ extern Class_Descriptor cd_dd48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd48, buf);
+ dd48 *dp, &lv = *(dp=new (buf) dd48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd48)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd48.d");
+ test_class_info(&lv, &cd_dd48);
+ dp->~dd48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd48(Test_dd48, "dd48", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd48C1Ev();
+extern void _ZN4dd48D1Ev();
+Name_Map name_map_dd48[] = {
+ NSPAIR(_ZN4dd48C1Ev),
+ NSPAIR(_ZN4dd48D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd48[];
+extern void _ZN4dd483fooEv();
+static VTBL_ENTRY vtc_dd48[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd48[0]),
+ (VTBL_ENTRY)&_ZN4dd483fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd48[];
+extern VTBL_ENTRY _ZTV4dd48[];
+Class_Descriptor cd_dd48 = { "dd48", // class name
+ 0,0,//no base classes
+ &(vtc_dd48[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd48),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd48),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee48 : aa48 , bb48 {
+ int e;
+ ee48(); // _ZN4ee48C1Ev
+ virtual void foo(); // _ZN4ee483fooEv
+ ~ee48(); // tgen
+};
+//SIG(-1 ee48) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee48 ::ee48(){ note_ctor("ee48", this);}
+void ee48 ::foo(){vfunc_called(this, "_ZN4ee483fooEv");}
+ee48 ::~ee48(){ note_dtor("ee48", this);} // tgen
+
+static void Test_ee48()
+{
+ extern Class_Descriptor cd_ee48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee48, buf);
+ ee48 *dp, &lv = *(dp=new (buf) ee48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee48)");
+ check_base_class_offset(lv, (aa48*), 0, "ee48");
+ check_base_class_offset(lv, (bb48*), ABISELECT(16,8), "ee48");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee48.e");
+ test_class_info(&lv, &cd_ee48);
+ dp->~ee48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee48(Test_ee48, "ee48", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee48C1Ev();
+extern void _ZN4ee48D1Ev();
+Name_Map name_map_ee48[] = {
+ NSPAIR(_ZN4ee48C1Ev),
+ NSPAIR(_ZN4ee48D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa48;
+extern VTBL_ENTRY _ZTI4aa48[];
+extern VTBL_ENTRY _ZTV4aa48[];
+extern Class_Descriptor cd_bb48;
+extern VTBL_ENTRY _ZTI4bb48[];
+extern VTBL_ENTRY _ZTV4bb48[];
+static Base_Class bases_ee48[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa48, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb48, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee48[];
+extern void _ZN4ee483fooEv();
+extern void ABISELECT(_ZThn16_N4ee483fooEv,_ZThn8_N4ee483fooEv)();
+static VTBL_ENTRY vtc_ee48[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee48[0]),
+ (VTBL_ENTRY)&_ZN4ee483fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee48[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee483fooEv,_ZThn8_N4ee483fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee48[];
+extern VTBL_ENTRY _ZTV4ee48[];
+Class_Descriptor cd_ee48 = { "ee48", // class name
+ bases_ee48, 2,
+ &(vtc_ee48[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee48),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee48),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff48 : cc48 , dd48 {
+ int f;
+ ff48(); // _ZN4ff48C1Ev
+ virtual void foo(); // _ZN4ff483fooEv
+ ~ff48(); // tgen
+};
+//SIG(-1 ff48) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff48 ::ff48(){ note_ctor("ff48", this);}
+void ff48 ::foo(){vfunc_called(this, "_ZN4ff483fooEv");}
+ff48 ::~ff48(){ note_dtor("ff48", this);} // tgen
+
+static void Test_ff48()
+{
+ extern Class_Descriptor cd_ff48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff48, buf);
+ ff48 *dp, &lv = *(dp=new (buf) ff48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff48)");
+ check_base_class_offset(lv, (cc48*), 0, "ff48");
+ check_base_class_offset(lv, (dd48*), ABISELECT(16,8), "ff48");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff48.f");
+ test_class_info(&lv, &cd_ff48);
+ dp->~ff48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff48(Test_ff48, "ff48", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff48C1Ev();
+extern void _ZN4ff48D1Ev();
+Name_Map name_map_ff48[] = {
+ NSPAIR(_ZN4ff48C1Ev),
+ NSPAIR(_ZN4ff48D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc48;
+extern VTBL_ENTRY _ZTI4cc48[];
+extern VTBL_ENTRY _ZTV4cc48[];
+extern Class_Descriptor cd_dd48;
+extern VTBL_ENTRY _ZTI4dd48[];
+extern VTBL_ENTRY _ZTV4dd48[];
+static Base_Class bases_ff48[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc48, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd48, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff48[];
+extern void _ZN4ff483fooEv();
+extern void ABISELECT(_ZThn16_N4ff483fooEv,_ZThn8_N4ff483fooEv)();
+static VTBL_ENTRY vtc_ff48[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff48[0]),
+ (VTBL_ENTRY)&_ZN4ff483fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff48[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff483fooEv,_ZThn8_N4ff483fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff48[];
+extern VTBL_ENTRY _ZTV4ff48[];
+Class_Descriptor cd_ff48 = { "ff48", // class name
+ bases_ff48, 2,
+ &(vtc_ff48[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff48),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff48),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg48 : virtual ee48 , virtual ff48 {
+ int g;
+ gg48(const ABISELECT(__tsi64,int) *const *); // _ZN4gg48C2Ev
+ virtual void foo(); // _ZN4gg483fooEv
+ ~gg48(); // tgen
+ gg48(); // tgen
+};
+//SIG(1 gg48) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg48 ::gg48(const ABISELECT(__tsi64,int) *const *){}
+void gg48 ::foo(){vfunc_called(this, "_ZN4gg483fooEv");}
+gg48 ::~gg48(){ note_dtor("gg48", this);} // tgen
+gg48 ::gg48(){ note_ctor("gg48", this);} // tgen
+
+static void Test_gg48()
+{
+ extern Class_Descriptor cd_gg48;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg48, buf);
+ gg48 *dp, &lv = *(dp=new (buf) gg48());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg48)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg48)");
+ check_base_class_offset(lv, (aa48*)(ee48*), ABISELECT(16,8), "gg48");
+ check_base_class_offset(lv, (bb48*)(ee48*), ABISELECT(32,16), "gg48");
+ check_base_class_offset(lv, (ee48*), ABISELECT(16,8), "gg48");
+ check_base_class_offset(lv, (cc48*)(ff48*), ABISELECT(48,28), "gg48");
+ check_base_class_offset(lv, (dd48*)(ff48*), ABISELECT(64,36), "gg48");
+ check_base_class_offset(lv, (ff48*), ABISELECT(48,28), "gg48");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg48.g");
+ test_class_info(&lv, &cd_gg48);
+ dp->~gg48();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg48(Test_gg48, "gg48", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg48C1Ev();
+extern void _ZN4gg48D1Ev();
+Name_Map name_map_gg48[] = {
+ NSPAIR(_ZN4gg48C1Ev),
+ NSPAIR(_ZN4gg48D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa48;
+extern VTBL_ENTRY _ZTI4aa48[];
+extern VTBL_ENTRY _ZTV4aa48[];
+extern Class_Descriptor cd_bb48;
+extern VTBL_ENTRY _ZTI4bb48[];
+extern VTBL_ENTRY _ZTV4bb48[];
+extern Class_Descriptor cd_ee48;
+extern VTBL_ENTRY _ZTI4ee48[];
+extern VTBL_ENTRY _ZTV4ee48[];
+extern Class_Descriptor cd_cc48;
+extern VTBL_ENTRY _ZTI4cc48[];
+extern VTBL_ENTRY _ZTV4cc48[];
+extern Class_Descriptor cd_dd48;
+extern VTBL_ENTRY _ZTI4dd48[];
+extern VTBL_ENTRY _ZTV4dd48[];
+extern Class_Descriptor cd_ff48;
+extern VTBL_ENTRY _ZTI4ff48[];
+extern VTBL_ENTRY _ZTV4ff48[];
+static Base_Class bases_gg48[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa48, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb48, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee48, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc48, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd48, ABISELECT(64,36), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff48, ABISELECT(48,28), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg48[];
+extern void _ZN4gg483fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg483fooEv,_ZTv0_n12_N4gg483fooEv)();
+extern void ABISELECT(_ZThn16_N4gg483fooEv,_ZThn8_N4gg483fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg483fooEv,_ZTvn8_n12_N4gg483fooEv)();
+extern void ABISELECT(_ZTv0_n24_N4gg483fooEv,_ZTv0_n12_N4gg483fooEv)();
+extern void ABISELECT(_ZThn48_N4gg483fooEv,_ZThn28_N4gg483fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg483fooEv,_ZTvn8_n12_N4gg483fooEv)();
+static VTBL_ENTRY vtc_gg48[] = {
+ ABISELECT(48,28),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg48[0]),
+ (VTBL_ENTRY)&_ZN4gg483fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg48[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg483fooEv,_ZTv0_n12_N4gg483fooEv),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg48[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg483fooEv,_ZTvn8_n12_N4gg483fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg48[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg483fooEv,_ZTv0_n12_N4gg483fooEv),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg48[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg483fooEv,_ZTvn8_n12_N4gg483fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg48[];
+static VTT_ENTRY vtt_gg48[] = {
+ {&(_ZTV4gg48[4]), 4,19},
+ {&(_ZTV4gg48[8]), 8,19},
+ {&(_ZTV4gg48[11]), 11,19},
+ {&(_ZTV4gg48[15]), 15,19},
+ {&(_ZTV4gg48[18]), 18,19},
+};
+extern VTBL_ENTRY _ZTI4gg48[];
+extern VTBL_ENTRY _ZTV4gg48[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg48[];
+static VTBL_ENTRY alt_thunk_names120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg483fooEv,_ZTv0_n12_N4gg483fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg483fooEv,_ZThn28_N4gg483fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg483fooEv,_ZThn8_N4gg483fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg48 = { "gg48", // class name
+ bases_gg48, 6,
+ &(vtc_gg48[0]), // expected_vtbl_contents
+ &(vtt_gg48[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg48),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg48),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg48),5, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa49 {
+ int a;
+ aa49(); // _ZN4aa49C1Ev
+ virtual void foo(); // _ZN4aa493fooEv
+ ~aa49(); // tgen
+};
+//SIG(-1 aa49) C1{ v1 Fi}
+
+
+ aa49 ::aa49(){ note_ctor("aa49", this);}
+void aa49 ::foo(){vfunc_called(this, "_ZN4aa493fooEv");}
+aa49 ::~aa49(){ note_dtor("aa49", this);} // tgen
+
+static void Test_aa49()
+{
+ extern Class_Descriptor cd_aa49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa49, buf);
+ aa49 *dp, &lv = *(dp=new (buf) aa49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa49)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa49.a");
+ test_class_info(&lv, &cd_aa49);
+ dp->~aa49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa49(Test_aa49, "aa49", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa49C1Ev();
+extern void _ZN4aa49D1Ev();
+Name_Map name_map_aa49[] = {
+ NSPAIR(_ZN4aa49C1Ev),
+ NSPAIR(_ZN4aa49D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa49[];
+extern void _ZN4aa493fooEv();
+static VTBL_ENTRY vtc_aa49[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa49[0]),
+ (VTBL_ENTRY)&_ZN4aa493fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa49[];
+extern VTBL_ENTRY _ZTV4aa49[];
+Class_Descriptor cd_aa49 = { "aa49", // class name
+ 0,0,//no base classes
+ &(vtc_aa49[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa49),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa49),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb49 {
+ int b;
+ bb49(); // _ZN4bb49C1Ev
+ virtual void foo(); // _ZN4bb493fooEv
+ ~bb49(); // tgen
+};
+//SIG(-1 bb49) C1{ v1 Fi}
+
+
+ bb49 ::bb49(){ note_ctor("bb49", this);}
+void bb49 ::foo(){vfunc_called(this, "_ZN4bb493fooEv");}
+bb49 ::~bb49(){ note_dtor("bb49", this);} // tgen
+
+static void Test_bb49()
+{
+ extern Class_Descriptor cd_bb49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb49, buf);
+ bb49 *dp, &lv = *(dp=new (buf) bb49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb49)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb49.b");
+ test_class_info(&lv, &cd_bb49);
+ dp->~bb49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb49(Test_bb49, "bb49", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb49C1Ev();
+extern void _ZN4bb49D1Ev();
+Name_Map name_map_bb49[] = {
+ NSPAIR(_ZN4bb49C1Ev),
+ NSPAIR(_ZN4bb49D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb49[];
+extern void _ZN4bb493fooEv();
+static VTBL_ENTRY vtc_bb49[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb49[0]),
+ (VTBL_ENTRY)&_ZN4bb493fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb49[];
+extern VTBL_ENTRY _ZTV4bb49[];
+Class_Descriptor cd_bb49 = { "bb49", // class name
+ 0,0,//no base classes
+ &(vtc_bb49[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb49),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb49),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc49 {
+ int c;
+ cc49(); // _ZN4cc49C1Ev
+ virtual void foo(); // _ZN4cc493fooEv
+ ~cc49(); // tgen
+};
+//SIG(-1 cc49) C1{ v1 Fi}
+
+
+ cc49 ::cc49(){ note_ctor("cc49", this);}
+void cc49 ::foo(){vfunc_called(this, "_ZN4cc493fooEv");}
+cc49 ::~cc49(){ note_dtor("cc49", this);} // tgen
+
+static void Test_cc49()
+{
+ extern Class_Descriptor cd_cc49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc49, buf);
+ cc49 *dp, &lv = *(dp=new (buf) cc49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc49)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc49.c");
+ test_class_info(&lv, &cd_cc49);
+ dp->~cc49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc49(Test_cc49, "cc49", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc49C1Ev();
+extern void _ZN4cc49D1Ev();
+Name_Map name_map_cc49[] = {
+ NSPAIR(_ZN4cc49C1Ev),
+ NSPAIR(_ZN4cc49D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc49[];
+extern void _ZN4cc493fooEv();
+static VTBL_ENTRY vtc_cc49[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc49[0]),
+ (VTBL_ENTRY)&_ZN4cc493fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc49[];
+extern VTBL_ENTRY _ZTV4cc49[];
+Class_Descriptor cd_cc49 = { "cc49", // class name
+ 0,0,//no base classes
+ &(vtc_cc49[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc49),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc49),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd49 {
+ int d;
+ dd49(); // _ZN4dd49C1Ev
+ virtual void foo(); // _ZN4dd493fooEv
+ ~dd49(); // tgen
+};
+//SIG(-1 dd49) C1{ v1 Fi}
+
+
+ dd49 ::dd49(){ note_ctor("dd49", this);}
+void dd49 ::foo(){vfunc_called(this, "_ZN4dd493fooEv");}
+dd49 ::~dd49(){ note_dtor("dd49", this);} // tgen
+
+static void Test_dd49()
+{
+ extern Class_Descriptor cd_dd49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd49, buf);
+ dd49 *dp, &lv = *(dp=new (buf) dd49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd49)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd49.d");
+ test_class_info(&lv, &cd_dd49);
+ dp->~dd49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd49(Test_dd49, "dd49", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd49C1Ev();
+extern void _ZN4dd49D1Ev();
+Name_Map name_map_dd49[] = {
+ NSPAIR(_ZN4dd49C1Ev),
+ NSPAIR(_ZN4dd49D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd49[];
+extern void _ZN4dd493fooEv();
+static VTBL_ENTRY vtc_dd49[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd49[0]),
+ (VTBL_ENTRY)&_ZN4dd493fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd49[];
+extern VTBL_ENTRY _ZTV4dd49[];
+Class_Descriptor cd_dd49 = { "dd49", // class name
+ 0,0,//no base classes
+ &(vtc_dd49[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd49),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd49),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee49 : virtual aa49 , bb49 {
+ int e;
+ ee49(const ABISELECT(__tsi64,int) *const *); // _ZN4ee49C2Ev
+ virtual void foo(); // _ZN4ee493fooEv
+ ~ee49(); // tgen
+ ee49(); // tgen
+};
+//SIG(-1 ee49) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee49 ::ee49(const ABISELECT(__tsi64,int) *const *){}
+void ee49 ::foo(){vfunc_called(this, "_ZN4ee493fooEv");}
+ee49 ::~ee49(){ note_dtor("ee49", this);} // tgen
+ee49 ::ee49(){ note_ctor("ee49", this);} // tgen
+
+static void Test_ee49()
+{
+ extern Class_Descriptor cd_ee49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee49, buf);
+ ee49 *dp, &lv = *(dp=new (buf) ee49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee49)");
+ check_base_class_offset(lv, (aa49*), ABISELECT(16,12), "ee49");
+ check_base_class_offset(lv, (bb49*), 0, "ee49");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee49.e");
+ test_class_info(&lv, &cd_ee49);
+ dp->~ee49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee49(Test_ee49, "ee49", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee49C1Ev();
+extern void _ZN4ee49D1Ev();
+Name_Map name_map_ee49[] = {
+ NSPAIR(_ZN4ee49C1Ev),
+ NSPAIR(_ZN4ee49D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa49;
+extern VTBL_ENTRY _ZTI4aa49[];
+extern VTBL_ENTRY _ZTV4aa49[];
+extern Class_Descriptor cd_bb49;
+extern VTBL_ENTRY _ZTI4bb49[];
+extern VTBL_ENTRY _ZTV4bb49[];
+static Base_Class bases_ee49[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa49, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb49, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee49[];
+extern void _ZN4ee493fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee493fooEv,_ZTv0_n12_N4ee493fooEv)();
+extern void ABISELECT(_ZThn16_N4ee493fooEv,_ZThn12_N4ee493fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee49[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee49[0]),
+ (VTBL_ENTRY)&_ZN4ee493fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee493fooEv,_ZTv0_n12_N4ee493fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee49[];
+static VTT_ENTRY vtt_ee49[] = {
+ {&(_ZTV4ee49[3]), 3,8},
+ {&(_ZTV4ee49[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee49[];
+extern VTBL_ENTRY _ZTV4ee49[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee49[];
+static VTBL_ENTRY alt_thunk_names121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee493fooEv,_ZTv0_n12_N4ee493fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee493fooEv,_ZThn12_N4ee493fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee49 = { "ee49", // class name
+ bases_ee49, 2,
+ &(vtc_ee49[0]), // expected_vtbl_contents
+ &(vtt_ee49[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee49),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee49),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee49),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff49 : cc49 , dd49 {
+ int f;
+ ff49(); // _ZN4ff49C1Ev
+ virtual void foo(); // _ZN4ff493fooEv
+ ~ff49(); // tgen
+};
+//SIG(-1 ff49) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff49 ::ff49(){ note_ctor("ff49", this);}
+void ff49 ::foo(){vfunc_called(this, "_ZN4ff493fooEv");}
+ff49 ::~ff49(){ note_dtor("ff49", this);} // tgen
+
+static void Test_ff49()
+{
+ extern Class_Descriptor cd_ff49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff49, buf);
+ ff49 *dp, &lv = *(dp=new (buf) ff49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff49)");
+ check_base_class_offset(lv, (cc49*), 0, "ff49");
+ check_base_class_offset(lv, (dd49*), ABISELECT(16,8), "ff49");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff49.f");
+ test_class_info(&lv, &cd_ff49);
+ dp->~ff49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff49(Test_ff49, "ff49", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff49C1Ev();
+extern void _ZN4ff49D1Ev();
+Name_Map name_map_ff49[] = {
+ NSPAIR(_ZN4ff49C1Ev),
+ NSPAIR(_ZN4ff49D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc49;
+extern VTBL_ENTRY _ZTI4cc49[];
+extern VTBL_ENTRY _ZTV4cc49[];
+extern Class_Descriptor cd_dd49;
+extern VTBL_ENTRY _ZTI4dd49[];
+extern VTBL_ENTRY _ZTV4dd49[];
+static Base_Class bases_ff49[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc49, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd49, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff49[];
+extern void _ZN4ff493fooEv();
+extern void ABISELECT(_ZThn16_N4ff493fooEv,_ZThn8_N4ff493fooEv)();
+static VTBL_ENTRY vtc_ff49[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff49[0]),
+ (VTBL_ENTRY)&_ZN4ff493fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff493fooEv,_ZThn8_N4ff493fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff49[];
+extern VTBL_ENTRY _ZTV4ff49[];
+Class_Descriptor cd_ff49 = { "ff49", // class name
+ bases_ff49, 2,
+ &(vtc_ff49[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff49),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff49),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg49 : virtual ee49 , virtual ff49 {
+ int g;
+ gg49(const ABISELECT(__tsi64,int) *const *); // _ZN4gg49C2Ev
+ virtual void foo(); // _ZN4gg493fooEv
+ ~gg49(); // tgen
+ gg49(); // tgen
+};
+//SIG(1 gg49) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg49 ::gg49(const ABISELECT(__tsi64,int) *const *){}
+void gg49 ::foo(){vfunc_called(this, "_ZN4gg493fooEv");}
+gg49 ::~gg49(){ note_dtor("gg49", this);} // tgen
+gg49 ::gg49(){ note_ctor("gg49", this);} // tgen
+
+static void Test_gg49()
+{
+ extern Class_Descriptor cd_gg49;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg49, buf);
+ gg49 *dp, &lv = *(dp=new (buf) gg49());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg49)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg49)");
+ check_base_class_offset(lv, (aa49*)(ee49*), ABISELECT(32,20), "gg49");
+ check_base_class_offset(lv, (bb49*)(ee49*), ABISELECT(16,8), "gg49");
+ check_base_class_offset(lv, (ee49*), ABISELECT(16,8), "gg49");
+ check_base_class_offset(lv, (cc49*)(ff49*), ABISELECT(48,28), "gg49");
+ check_base_class_offset(lv, (dd49*)(ff49*), ABISELECT(64,36), "gg49");
+ check_base_class_offset(lv, (ff49*), ABISELECT(48,28), "gg49");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg49.g");
+ test_class_info(&lv, &cd_gg49);
+ dp->~gg49();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg49(Test_gg49, "gg49", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg49C1Ev();
+extern void _ZN4gg49D1Ev();
+Name_Map name_map_gg49[] = {
+ NSPAIR(_ZN4gg49C1Ev),
+ NSPAIR(_ZN4gg49D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa49;
+extern VTBL_ENTRY _ZTI4aa49[];
+extern VTBL_ENTRY _ZTV4aa49[];
+extern Class_Descriptor cd_bb49;
+extern VTBL_ENTRY _ZTI4bb49[];
+extern VTBL_ENTRY _ZTV4bb49[];
+extern Class_Descriptor cd_ee49;
+extern VTBL_ENTRY _ZTI4ee49[];
+extern VTBL_ENTRY _ZTV4ee49[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee49[];
+extern Class_Descriptor cd_cc49;
+extern VTBL_ENTRY _ZTI4cc49[];
+extern VTBL_ENTRY _ZTV4cc49[];
+extern Class_Descriptor cd_dd49;
+extern VTBL_ENTRY _ZTI4dd49[];
+extern VTBL_ENTRY _ZTV4dd49[];
+extern Class_Descriptor cd_ff49;
+extern VTBL_ENTRY _ZTI4ff49[];
+extern VTBL_ENTRY _ZTV4ff49[];
+static Base_Class bases_gg49[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa49, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb49, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee49, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc49, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd49, ABISELECT(64,36), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff49, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg49[];
+extern void _ZN4gg493fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg493fooEv,_ZTv0_n16_N4gg493fooEv)();
+extern void ABISELECT(_ZThn16_N4gg493fooEv,_ZThn8_N4gg493fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg493fooEv,_ZTv0_n12_N4gg493fooEv)();
+extern void ABISELECT(_ZThn32_N4gg493fooEv,_ZThn20_N4gg493fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg493fooEv,_ZTv0_n12_N4gg493fooEv)();
+extern void ABISELECT(_ZThn48_N4gg493fooEv,_ZThn28_N4gg493fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg493fooEv,_ZTvn8_n12_N4gg493fooEv)();
+static VTBL_ENTRY vtc_gg49[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg49[0]),
+ (VTBL_ENTRY)&_ZN4gg493fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg493fooEv,_ZTv0_n16_N4gg493fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg493fooEv,_ZTv0_n12_N4gg493fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg493fooEv,_ZTv0_n12_N4gg493fooEv),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg493fooEv,_ZTvn8_n12_N4gg493fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg49[];
+extern void _ZN4ee493fooEv();
+static VTBL_ENTRY _tg__ZTV4ee49__4gg49[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee49[0]),
+ (VTBL_ENTRY)&_ZN4ee493fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee493fooEv,_ZTv0_n12_N4ee493fooEv)();
+extern void ABISELECT(_ZThn16_N4ee493fooEv,_ZThn12_N4ee493fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa49__4ee49__4gg49[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee49[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee493fooEv,_ZTv0_n12_N4ee493fooEv),
+};
+static VTT_ENTRY vtt_gg49[] = {
+ {&(_ZTV4gg49[5]), 5,22},
+ {&(_ZTV4gg49[10]), 10,22},
+ {&(_ZTV4gg49[14]), 14,22},
+ {&(_ZTV4gg49[18]), 18,22},
+ {&(_ZTV4gg49[21]), 21,22},
+ {&(_tg__ZTV4ee49__4gg49[3]), 3,4},
+ {&(_tg__ZTV4aa49__4ee49__4gg49[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg49[];
+extern VTBL_ENTRY _ZTV4gg49[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg49[];
+static VTBL_ENTRY alt_thunk_names122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee493fooEv,_ZTv0_n12_N4ee493fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee493fooEv,_ZThn12_N4ee493fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg493fooEv,_ZTv0_n12_N4gg493fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg493fooEv,_ZThn28_N4gg493fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg493fooEv,_ZThn20_N4gg493fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg493fooEv,_ZTv0_n16_N4gg493fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg493fooEv,_ZThn8_N4gg493fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg49 = { "gg49", // class name
+ bases_gg49, 6,
+ &(vtc_gg49[0]), // expected_vtbl_contents
+ &(vtt_gg49[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg49),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg49),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg49),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa50 {
+ int a;
+ aa50(); // _ZN4aa50C1Ev
+ virtual void foo(); // _ZN4aa503fooEv
+ ~aa50(); // tgen
+};
+//SIG(-1 aa50) C1{ v1 Fi}
+
+
+ aa50 ::aa50(){ note_ctor("aa50", this);}
+void aa50 ::foo(){vfunc_called(this, "_ZN4aa503fooEv");}
+aa50 ::~aa50(){ note_dtor("aa50", this);} // tgen
+
+static void Test_aa50()
+{
+ extern Class_Descriptor cd_aa50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa50, buf);
+ aa50 *dp, &lv = *(dp=new (buf) aa50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa50)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa50.a");
+ test_class_info(&lv, &cd_aa50);
+ dp->~aa50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa50(Test_aa50, "aa50", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa50C1Ev();
+extern void _ZN4aa50D1Ev();
+Name_Map name_map_aa50[] = {
+ NSPAIR(_ZN4aa50C1Ev),
+ NSPAIR(_ZN4aa50D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa50[];
+extern void _ZN4aa503fooEv();
+static VTBL_ENTRY vtc_aa50[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa50[0]),
+ (VTBL_ENTRY)&_ZN4aa503fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa50[];
+extern VTBL_ENTRY _ZTV4aa50[];
+Class_Descriptor cd_aa50 = { "aa50", // class name
+ 0,0,//no base classes
+ &(vtc_aa50[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa50),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa50),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb50 {
+ int b;
+ bb50(); // _ZN4bb50C1Ev
+ virtual void foo(); // _ZN4bb503fooEv
+ ~bb50(); // tgen
+};
+//SIG(-1 bb50) C1{ v1 Fi}
+
+
+ bb50 ::bb50(){ note_ctor("bb50", this);}
+void bb50 ::foo(){vfunc_called(this, "_ZN4bb503fooEv");}
+bb50 ::~bb50(){ note_dtor("bb50", this);} // tgen
+
+static void Test_bb50()
+{
+ extern Class_Descriptor cd_bb50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb50, buf);
+ bb50 *dp, &lv = *(dp=new (buf) bb50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb50)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb50.b");
+ test_class_info(&lv, &cd_bb50);
+ dp->~bb50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb50(Test_bb50, "bb50", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb50C1Ev();
+extern void _ZN4bb50D1Ev();
+Name_Map name_map_bb50[] = {
+ NSPAIR(_ZN4bb50C1Ev),
+ NSPAIR(_ZN4bb50D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb50[];
+extern void _ZN4bb503fooEv();
+static VTBL_ENTRY vtc_bb50[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+Class_Descriptor cd_bb50 = { "bb50", // class name
+ 0,0,//no base classes
+ &(vtc_bb50[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb50),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb50),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc50 {
+ int c;
+ cc50(); // _ZN4cc50C1Ev
+ virtual void foo(); // _ZN4cc503fooEv
+ ~cc50(); // tgen
+};
+//SIG(-1 cc50) C1{ v1 Fi}
+
+
+ cc50 ::cc50(){ note_ctor("cc50", this);}
+void cc50 ::foo(){vfunc_called(this, "_ZN4cc503fooEv");}
+cc50 ::~cc50(){ note_dtor("cc50", this);} // tgen
+
+static void Test_cc50()
+{
+ extern Class_Descriptor cd_cc50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc50, buf);
+ cc50 *dp, &lv = *(dp=new (buf) cc50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc50)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc50.c");
+ test_class_info(&lv, &cd_cc50);
+ dp->~cc50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc50(Test_cc50, "cc50", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc50C1Ev();
+extern void _ZN4cc50D1Ev();
+Name_Map name_map_cc50[] = {
+ NSPAIR(_ZN4cc50C1Ev),
+ NSPAIR(_ZN4cc50D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc50[];
+extern void _ZN4cc503fooEv();
+static VTBL_ENTRY vtc_cc50[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc50[0]),
+ (VTBL_ENTRY)&_ZN4cc503fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc50[];
+extern VTBL_ENTRY _ZTV4cc50[];
+Class_Descriptor cd_cc50 = { "cc50", // class name
+ 0,0,//no base classes
+ &(vtc_cc50[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc50),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc50),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd50 {
+ int d;
+ dd50(); // _ZN4dd50C1Ev
+ virtual void foo(); // _ZN4dd503fooEv
+ ~dd50(); // tgen
+};
+//SIG(-1 dd50) C1{ v1 Fi}
+
+
+ dd50 ::dd50(){ note_ctor("dd50", this);}
+void dd50 ::foo(){vfunc_called(this, "_ZN4dd503fooEv");}
+dd50 ::~dd50(){ note_dtor("dd50", this);} // tgen
+
+static void Test_dd50()
+{
+ extern Class_Descriptor cd_dd50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd50, buf);
+ dd50 *dp, &lv = *(dp=new (buf) dd50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd50)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd50.d");
+ test_class_info(&lv, &cd_dd50);
+ dp->~dd50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd50(Test_dd50, "dd50", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd50C1Ev();
+extern void _ZN4dd50D1Ev();
+Name_Map name_map_dd50[] = {
+ NSPAIR(_ZN4dd50C1Ev),
+ NSPAIR(_ZN4dd50D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd50[];
+extern void _ZN4dd503fooEv();
+static VTBL_ENTRY vtc_dd50[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd50[0]),
+ (VTBL_ENTRY)&_ZN4dd503fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd50[];
+extern VTBL_ENTRY _ZTV4dd50[];
+Class_Descriptor cd_dd50 = { "dd50", // class name
+ 0,0,//no base classes
+ &(vtc_dd50[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd50),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd50),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50 : aa50 , virtual bb50 {
+ int e;
+ ee50(const ABISELECT(__tsi64,int) *const *); // _ZN4ee50C2Ev
+ virtual void foo(); // _ZN4ee503fooEv
+ ~ee50(); // tgen
+ ee50(); // tgen
+};
+//SIG(-1 ee50) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee50 ::ee50(const ABISELECT(__tsi64,int) *const *){}
+void ee50 ::foo(){vfunc_called(this, "_ZN4ee503fooEv");}
+ee50 ::~ee50(){ note_dtor("ee50", this);} // tgen
+ee50 ::ee50(){ note_ctor("ee50", this);} // tgen
+
+static void Test_ee50()
+{
+ extern Class_Descriptor cd_ee50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee50, buf);
+ ee50 *dp, &lv = *(dp=new (buf) ee50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50)");
+ check_base_class_offset(lv, (aa50*), 0, "ee50");
+ check_base_class_offset(lv, (bb50*), ABISELECT(16,12), "ee50");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee50.e");
+ test_class_info(&lv, &cd_ee50);
+ dp->~ee50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50(Test_ee50, "ee50", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee50C1Ev();
+extern void _ZN4ee50D1Ev();
+Name_Map name_map_ee50[] = {
+ NSPAIR(_ZN4ee50C1Ev),
+ NSPAIR(_ZN4ee50D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa50;
+extern VTBL_ENTRY _ZTI4aa50[];
+extern VTBL_ENTRY _ZTV4aa50[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+static Base_Class bases_ee50[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee50[];
+extern void _ZN4ee503fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee503fooEv,_ZTv0_n12_N4ee503fooEv)();
+extern void ABISELECT(_ZThn16_N4ee503fooEv,_ZThn12_N4ee503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee50[0]),
+ (VTBL_ENTRY)&_ZN4ee503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee503fooEv,_ZTv0_n12_N4ee503fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee50[];
+static VTT_ENTRY vtt_ee50[] = {
+ {&(_ZTV4ee50[3]), 3,8},
+ {&(_ZTV4ee50[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee50[];
+extern VTBL_ENTRY _ZTV4ee50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee50[];
+static VTBL_ENTRY alt_thunk_names123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee503fooEv,_ZTv0_n12_N4ee503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee503fooEv,_ZThn12_N4ee503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50 = { "ee50", // class name
+ bases_ee50, 2,
+ &(vtc_ee50[0]), // expected_vtbl_contents
+ &(vtt_ee50[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee50),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee50),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee50),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff50 : cc50 , dd50 {
+ int f;
+ ff50(); // _ZN4ff50C1Ev
+ virtual void foo(); // _ZN4ff503fooEv
+ ~ff50(); // tgen
+};
+//SIG(-1 ff50) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff50 ::ff50(){ note_ctor("ff50", this);}
+void ff50 ::foo(){vfunc_called(this, "_ZN4ff503fooEv");}
+ff50 ::~ff50(){ note_dtor("ff50", this);} // tgen
+
+static void Test_ff50()
+{
+ extern Class_Descriptor cd_ff50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff50, buf);
+ ff50 *dp, &lv = *(dp=new (buf) ff50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff50)");
+ check_base_class_offset(lv, (cc50*), 0, "ff50");
+ check_base_class_offset(lv, (dd50*), ABISELECT(16,8), "ff50");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff50.f");
+ test_class_info(&lv, &cd_ff50);
+ dp->~ff50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff50(Test_ff50, "ff50", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff50C1Ev();
+extern void _ZN4ff50D1Ev();
+Name_Map name_map_ff50[] = {
+ NSPAIR(_ZN4ff50C1Ev),
+ NSPAIR(_ZN4ff50D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc50;
+extern VTBL_ENTRY _ZTI4cc50[];
+extern VTBL_ENTRY _ZTV4cc50[];
+extern Class_Descriptor cd_dd50;
+extern VTBL_ENTRY _ZTI4dd50[];
+extern VTBL_ENTRY _ZTV4dd50[];
+static Base_Class bases_ff50[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd50, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff50[];
+extern void _ZN4ff503fooEv();
+extern void ABISELECT(_ZThn16_N4ff503fooEv,_ZThn8_N4ff503fooEv)();
+static VTBL_ENTRY vtc_ff50[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff50[0]),
+ (VTBL_ENTRY)&_ZN4ff503fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff503fooEv,_ZThn8_N4ff503fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff50[];
+extern VTBL_ENTRY _ZTV4ff50[];
+Class_Descriptor cd_ff50 = { "ff50", // class name
+ bases_ff50, 2,
+ &(vtc_ff50[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff50),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff50),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg50 : virtual ee50 , virtual ff50 {
+ int g;
+ gg50(const ABISELECT(__tsi64,int) *const *); // _ZN4gg50C2Ev
+ virtual void foo(); // _ZN4gg503fooEv
+ ~gg50(); // tgen
+ gg50(); // tgen
+};
+//SIG(1 gg50) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg50 ::gg50(const ABISELECT(__tsi64,int) *const *){}
+void gg50 ::foo(){vfunc_called(this, "_ZN4gg503fooEv");}
+gg50 ::~gg50(){ note_dtor("gg50", this);} // tgen
+gg50 ::gg50(){ note_ctor("gg50", this);} // tgen
+
+static void Test_gg50()
+{
+ extern Class_Descriptor cd_gg50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg50, buf);
+ gg50 *dp, &lv = *(dp=new (buf) gg50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg50)");
+ check_base_class_offset(lv, (aa50*)(ee50*), ABISELECT(16,8), "gg50");
+ check_base_class_offset(lv, (bb50*)(ee50*), ABISELECT(32,20), "gg50");
+ check_base_class_offset(lv, (ee50*), ABISELECT(16,8), "gg50");
+ check_base_class_offset(lv, (cc50*)(ff50*), ABISELECT(48,28), "gg50");
+ check_base_class_offset(lv, (dd50*)(ff50*), ABISELECT(64,36), "gg50");
+ check_base_class_offset(lv, (ff50*), ABISELECT(48,28), "gg50");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg50.g");
+ test_class_info(&lv, &cd_gg50);
+ dp->~gg50();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg50(Test_gg50, "gg50", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg50C1Ev();
+extern void _ZN4gg50D1Ev();
+Name_Map name_map_gg50[] = {
+ NSPAIR(_ZN4gg50C1Ev),
+ NSPAIR(_ZN4gg50D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa50;
+extern VTBL_ENTRY _ZTI4aa50[];
+extern VTBL_ENTRY _ZTV4aa50[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern Class_Descriptor cd_ee50;
+extern VTBL_ENTRY _ZTI4ee50[];
+extern VTBL_ENTRY _ZTV4ee50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee50[];
+extern Class_Descriptor cd_cc50;
+extern VTBL_ENTRY _ZTI4cc50[];
+extern VTBL_ENTRY _ZTV4cc50[];
+extern Class_Descriptor cd_dd50;
+extern VTBL_ENTRY _ZTI4dd50[];
+extern VTBL_ENTRY _ZTV4dd50[];
+extern Class_Descriptor cd_ff50;
+extern VTBL_ENTRY _ZTI4ff50[];
+extern VTBL_ENTRY _ZTV4ff50[];
+static Base_Class bases_gg50[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee50, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc50, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd50, ABISELECT(64,36), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff50, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg50[];
+extern void _ZN4gg503fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg503fooEv,_ZTv0_n16_N4gg503fooEv)();
+extern void ABISELECT(_ZThn16_N4gg503fooEv,_ZThn8_N4gg503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg503fooEv,_ZTv0_n12_N4gg503fooEv)();
+extern void ABISELECT(_ZThn32_N4gg503fooEv,_ZThn20_N4gg503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg503fooEv,_ZTv0_n12_N4gg503fooEv)();
+extern void ABISELECT(_ZThn48_N4gg503fooEv,_ZThn28_N4gg503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg503fooEv,_ZTvn8_n12_N4gg503fooEv)();
+static VTBL_ENTRY vtc_gg50[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg50[0]),
+ (VTBL_ENTRY)&_ZN4gg503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg503fooEv,_ZTv0_n16_N4gg503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg503fooEv,_ZTv0_n12_N4gg503fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg503fooEv,_ZTv0_n12_N4gg503fooEv),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg503fooEv,_ZTvn8_n12_N4gg503fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg50[];
+extern void _ZN4ee503fooEv();
+static VTBL_ENTRY _tg__ZTV4ee50__4gg50[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee50[0]),
+ (VTBL_ENTRY)&_ZN4ee503fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee503fooEv,_ZTv0_n12_N4ee503fooEv)();
+extern void ABISELECT(_ZThn16_N4ee503fooEv,_ZThn12_N4ee503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__4ee50__4gg50[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee50[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee503fooEv,_ZTv0_n12_N4ee503fooEv),
+};
+static VTT_ENTRY vtt_gg50[] = {
+ {&(_ZTV4gg50[5]), 5,22},
+ {&(_ZTV4gg50[10]), 10,22},
+ {&(_ZTV4gg50[14]), 14,22},
+ {&(_ZTV4gg50[18]), 18,22},
+ {&(_ZTV4gg50[21]), 21,22},
+ {&(_tg__ZTV4ee50__4gg50[3]), 3,4},
+ {&(_tg__ZTV4bb50__4ee50__4gg50[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg50[];
+extern VTBL_ENTRY _ZTV4gg50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg50[];
+static VTBL_ENTRY alt_thunk_names124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee503fooEv,_ZTv0_n12_N4ee503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee503fooEv,_ZThn12_N4ee503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg503fooEv,_ZTv0_n12_N4gg503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg503fooEv,_ZThn28_N4gg503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg503fooEv,_ZThn20_N4gg503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg503fooEv,_ZTv0_n16_N4gg503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg503fooEv,_ZThn8_N4gg503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg50 = { "gg50", // class name
+ bases_gg50, 6,
+ &(vtc_gg50[0]), // expected_vtbl_contents
+ &(vtt_gg50[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg50),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg50),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg50),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa51 {
+ int a;
+ aa51(); // _ZN4aa51C1Ev
+ virtual void foo(); // _ZN4aa513fooEv
+ ~aa51(); // tgen
+};
+//SIG(-1 aa51) C1{ v1 Fi}
+
+
+ aa51 ::aa51(){ note_ctor("aa51", this);}
+void aa51 ::foo(){vfunc_called(this, "_ZN4aa513fooEv");}
+aa51 ::~aa51(){ note_dtor("aa51", this);} // tgen
+
+static void Test_aa51()
+{
+ extern Class_Descriptor cd_aa51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa51, buf);
+ aa51 *dp, &lv = *(dp=new (buf) aa51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa51)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa51.a");
+ test_class_info(&lv, &cd_aa51);
+ dp->~aa51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa51(Test_aa51, "aa51", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa51C1Ev();
+extern void _ZN4aa51D1Ev();
+Name_Map name_map_aa51[] = {
+ NSPAIR(_ZN4aa51C1Ev),
+ NSPAIR(_ZN4aa51D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa51[];
+extern void _ZN4aa513fooEv();
+static VTBL_ENTRY vtc_aa51[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa51[0]),
+ (VTBL_ENTRY)&_ZN4aa513fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa51[];
+extern VTBL_ENTRY _ZTV4aa51[];
+Class_Descriptor cd_aa51 = { "aa51", // class name
+ 0,0,//no base classes
+ &(vtc_aa51[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa51),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa51),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb51 {
+ int b;
+ bb51(); // _ZN4bb51C1Ev
+ virtual void foo(); // _ZN4bb513fooEv
+ ~bb51(); // tgen
+};
+//SIG(-1 bb51) C1{ v1 Fi}
+
+
+ bb51 ::bb51(){ note_ctor("bb51", this);}
+void bb51 ::foo(){vfunc_called(this, "_ZN4bb513fooEv");}
+bb51 ::~bb51(){ note_dtor("bb51", this);} // tgen
+
+static void Test_bb51()
+{
+ extern Class_Descriptor cd_bb51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb51, buf);
+ bb51 *dp, &lv = *(dp=new (buf) bb51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb51)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb51.b");
+ test_class_info(&lv, &cd_bb51);
+ dp->~bb51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb51(Test_bb51, "bb51", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb51C1Ev();
+extern void _ZN4bb51D1Ev();
+Name_Map name_map_bb51[] = {
+ NSPAIR(_ZN4bb51C1Ev),
+ NSPAIR(_ZN4bb51D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb51[];
+extern void _ZN4bb513fooEv();
+static VTBL_ENTRY vtc_bb51[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+Class_Descriptor cd_bb51 = { "bb51", // class name
+ 0,0,//no base classes
+ &(vtc_bb51[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb51),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb51),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc51 {
+ int c;
+ cc51(); // _ZN4cc51C1Ev
+ virtual void foo(); // _ZN4cc513fooEv
+ ~cc51(); // tgen
+};
+//SIG(-1 cc51) C1{ v1 Fi}
+
+
+ cc51 ::cc51(){ note_ctor("cc51", this);}
+void cc51 ::foo(){vfunc_called(this, "_ZN4cc513fooEv");}
+cc51 ::~cc51(){ note_dtor("cc51", this);} // tgen
+
+static void Test_cc51()
+{
+ extern Class_Descriptor cd_cc51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc51, buf);
+ cc51 *dp, &lv = *(dp=new (buf) cc51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc51)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc51.c");
+ test_class_info(&lv, &cd_cc51);
+ dp->~cc51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc51(Test_cc51, "cc51", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc51C1Ev();
+extern void _ZN4cc51D1Ev();
+Name_Map name_map_cc51[] = {
+ NSPAIR(_ZN4cc51C1Ev),
+ NSPAIR(_ZN4cc51D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc51[];
+extern void _ZN4cc513fooEv();
+static VTBL_ENTRY vtc_cc51[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc51[0]),
+ (VTBL_ENTRY)&_ZN4cc513fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc51[];
+extern VTBL_ENTRY _ZTV4cc51[];
+Class_Descriptor cd_cc51 = { "cc51", // class name
+ 0,0,//no base classes
+ &(vtc_cc51[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc51),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc51),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd51 {
+ int d;
+ dd51(); // _ZN4dd51C1Ev
+ virtual void foo(); // _ZN4dd513fooEv
+ ~dd51(); // tgen
+};
+//SIG(-1 dd51) C1{ v1 Fi}
+
+
+ dd51 ::dd51(){ note_ctor("dd51", this);}
+void dd51 ::foo(){vfunc_called(this, "_ZN4dd513fooEv");}
+dd51 ::~dd51(){ note_dtor("dd51", this);} // tgen
+
+static void Test_dd51()
+{
+ extern Class_Descriptor cd_dd51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd51, buf);
+ dd51 *dp, &lv = *(dp=new (buf) dd51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd51)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd51.d");
+ test_class_info(&lv, &cd_dd51);
+ dp->~dd51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd51(Test_dd51, "dd51", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd51C1Ev();
+extern void _ZN4dd51D1Ev();
+Name_Map name_map_dd51[] = {
+ NSPAIR(_ZN4dd51C1Ev),
+ NSPAIR(_ZN4dd51D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd51[];
+extern void _ZN4dd513fooEv();
+static VTBL_ENTRY vtc_dd51[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd51[0]),
+ (VTBL_ENTRY)&_ZN4dd513fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd51[];
+extern VTBL_ENTRY _ZTV4dd51[];
+Class_Descriptor cd_dd51 = { "dd51", // class name
+ 0,0,//no base classes
+ &(vtc_dd51[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd51),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd51),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51 : virtual aa51 , virtual bb51 {
+ int e;
+ ee51(const ABISELECT(__tsi64,int) *const *); // _ZN4ee51C2Ev
+ virtual void foo(); // _ZN4ee513fooEv
+ ~ee51(); // tgen
+ ee51(); // tgen
+};
+//SIG(-1 ee51) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee51 ::ee51(const ABISELECT(__tsi64,int) *const *){}
+void ee51 ::foo(){vfunc_called(this, "_ZN4ee513fooEv");}
+ee51 ::~ee51(){ note_dtor("ee51", this);} // tgen
+ee51 ::ee51(){ note_ctor("ee51", this);} // tgen
+
+static void Test_ee51()
+{
+ extern Class_Descriptor cd_ee51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee51, buf);
+ ee51 *dp, &lv = *(dp=new (buf) ee51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51)");
+ check_base_class_offset(lv, (aa51*), ABISELECT(16,8), "ee51");
+ check_base_class_offset(lv, (bb51*), ABISELECT(32,16), "ee51");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51.e");
+ test_class_info(&lv, &cd_ee51);
+ dp->~ee51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51(Test_ee51, "ee51", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee51C1Ev();
+extern void _ZN4ee51D1Ev();
+Name_Map name_map_ee51[] = {
+ NSPAIR(_ZN4ee51C1Ev),
+ NSPAIR(_ZN4ee51D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa51;
+extern VTBL_ENTRY _ZTI4aa51[];
+extern VTBL_ENTRY _ZTV4aa51[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+static Base_Class bases_ee51[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa51, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee51[];
+extern void _ZN4ee513fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv)();
+extern void ABISELECT(_ZThn16_N4ee513fooEv,_ZThn8_N4ee513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv)();
+extern void ABISELECT(_ZThn32_N4ee513fooEv,_ZThn16_N4ee513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee51[0]),
+ (VTBL_ENTRY)&_ZN4ee513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee51[];
+static VTT_ENTRY vtt_ee51[] = {
+ {&(_ZTV4ee51[4]), 4,13},
+ {&(_ZTV4ee51[8]), 8,13},
+ {&(_ZTV4ee51[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee51[];
+extern VTBL_ENTRY _ZTV4ee51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee51[];
+static VTBL_ENTRY alt_thunk_names125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee513fooEv,_ZThn16_N4ee513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee513fooEv,_ZThn8_N4ee513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51 = { "ee51", // class name
+ bases_ee51, 2,
+ &(vtc_ee51[0]), // expected_vtbl_contents
+ &(vtt_ee51[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee51),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee51),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee51),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff51 : cc51 , dd51 {
+ int f;
+ ff51(); // _ZN4ff51C1Ev
+ virtual void foo(); // _ZN4ff513fooEv
+ ~ff51(); // tgen
+};
+//SIG(-1 ff51) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff51 ::ff51(){ note_ctor("ff51", this);}
+void ff51 ::foo(){vfunc_called(this, "_ZN4ff513fooEv");}
+ff51 ::~ff51(){ note_dtor("ff51", this);} // tgen
+
+static void Test_ff51()
+{
+ extern Class_Descriptor cd_ff51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff51, buf);
+ ff51 *dp, &lv = *(dp=new (buf) ff51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff51)");
+ check_base_class_offset(lv, (cc51*), 0, "ff51");
+ check_base_class_offset(lv, (dd51*), ABISELECT(16,8), "ff51");
+ check_field_offset(lv, f, ABISELECT(28,16), "ff51.f");
+ test_class_info(&lv, &cd_ff51);
+ dp->~ff51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff51(Test_ff51, "ff51", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff51C1Ev();
+extern void _ZN4ff51D1Ev();
+Name_Map name_map_ff51[] = {
+ NSPAIR(_ZN4ff51C1Ev),
+ NSPAIR(_ZN4ff51D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc51;
+extern VTBL_ENTRY _ZTI4cc51[];
+extern VTBL_ENTRY _ZTV4cc51[];
+extern Class_Descriptor cd_dd51;
+extern VTBL_ENTRY _ZTI4dd51[];
+extern VTBL_ENTRY _ZTV4dd51[];
+static Base_Class bases_ff51[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd51, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff51[];
+extern void _ZN4ff513fooEv();
+extern void ABISELECT(_ZThn16_N4ff513fooEv,_ZThn8_N4ff513fooEv)();
+static VTBL_ENTRY vtc_ff51[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff51[0]),
+ (VTBL_ENTRY)&_ZN4ff513fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ff513fooEv,_ZThn8_N4ff513fooEv),
+};
+extern VTBL_ENTRY _ZTI4ff51[];
+extern VTBL_ENTRY _ZTV4ff51[];
+Class_Descriptor cd_ff51 = { "ff51", // class name
+ bases_ff51, 2,
+ &(vtc_ff51[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff51),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff51),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg51 : virtual ee51 , virtual ff51 {
+ int g;
+ gg51(const ABISELECT(__tsi64,int) *const *); // _ZN4gg51C2Ev
+ virtual void foo(); // _ZN4gg513fooEv
+ ~gg51(); // tgen
+ gg51(); // tgen
+};
+//SIG(1 gg51) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg51 ::gg51(const ABISELECT(__tsi64,int) *const *){}
+void gg51 ::foo(){vfunc_called(this, "_ZN4gg513fooEv");}
+gg51 ::~gg51(){ note_dtor("gg51", this);} // tgen
+gg51 ::gg51(){ note_ctor("gg51", this);} // tgen
+
+static void Test_gg51()
+{
+ extern Class_Descriptor cd_gg51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg51, buf);
+ gg51 *dp, &lv = *(dp=new (buf) gg51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg51)");
+ check_base_class_offset(lv, (aa51*)(ee51*), ABISELECT(32,16), "gg51");
+ check_base_class_offset(lv, (bb51*)(ee51*), ABISELECT(48,24), "gg51");
+ check_base_class_offset(lv, (ee51*), ABISELECT(16,8), "gg51");
+ check_base_class_offset(lv, (cc51*)(ff51*), ABISELECT(64,32), "gg51");
+ check_base_class_offset(lv, (dd51*)(ff51*), ABISELECT(80,40), "gg51");
+ check_base_class_offset(lv, (ff51*), ABISELECT(64,32), "gg51");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg51.g");
+ test_class_info(&lv, &cd_gg51);
+ dp->~gg51();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg51(Test_gg51, "gg51", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg51C1Ev();
+extern void _ZN4gg51D1Ev();
+Name_Map name_map_gg51[] = {
+ NSPAIR(_ZN4gg51C1Ev),
+ NSPAIR(_ZN4gg51D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa51;
+extern VTBL_ENTRY _ZTI4aa51[];
+extern VTBL_ENTRY _ZTV4aa51[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern Class_Descriptor cd_ee51;
+extern VTBL_ENTRY _ZTI4ee51[];
+extern VTBL_ENTRY _ZTV4ee51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee51[];
+extern Class_Descriptor cd_cc51;
+extern VTBL_ENTRY _ZTI4cc51[];
+extern VTBL_ENTRY _ZTV4cc51[];
+extern Class_Descriptor cd_dd51;
+extern VTBL_ENTRY _ZTI4dd51[];
+extern VTBL_ENTRY _ZTV4dd51[];
+extern Class_Descriptor cd_ff51;
+extern VTBL_ENTRY _ZTI4ff51[];
+extern VTBL_ENTRY _ZTV4ff51[];
+static Base_Class bases_gg51[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa51, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee51, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc51, ABISELECT(64,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd51, ABISELECT(80,40), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff51, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg51[];
+extern void _ZN4gg513fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg513fooEv,_ZTv0_n20_N4gg513fooEv)();
+extern void ABISELECT(_ZThn16_N4gg513fooEv,_ZThn8_N4gg513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv)();
+extern void ABISELECT(_ZThn32_N4gg513fooEv,_ZThn16_N4gg513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv)();
+extern void ABISELECT(_ZThn48_N4gg513fooEv,_ZThn24_N4gg513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv)();
+extern void ABISELECT(_ZThn64_N4gg513fooEv,_ZThn32_N4gg513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg513fooEv,_ZTvn8_n12_N4gg513fooEv)();
+static VTBL_ENTRY vtc_gg51[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg51[0]),
+ (VTBL_ENTRY)&_ZN4gg513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg513fooEv,_ZTv0_n20_N4gg513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI4gg51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI4gg51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI4gg51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg513fooEv,_ZTvn8_n12_N4gg513fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg51[];
+extern void _ZN4ee513fooEv();
+static VTBL_ENTRY _tg__ZTV4ee51__4gg51[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee51[0]),
+ (VTBL_ENTRY)&_ZN4ee513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv)();
+extern void ABISELECT(_ZThn16_N4ee513fooEv,_ZThn8_N4ee513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa51__4ee51__4gg51[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv)();
+extern void ABISELECT(_ZThn32_N4ee513fooEv,_ZThn16_N4ee513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__4ee51__4gg51[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee51[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv),
+};
+static VTT_ENTRY vtt_gg51[] = {
+ {&(_ZTV4gg51[6]), 6,28},
+ {&(_ZTV4gg51[12]), 12,28},
+ {&(_ZTV4gg51[16]), 16,28},
+ {&(_ZTV4gg51[20]), 20,28},
+ {&(_ZTV4gg51[24]), 24,28},
+ {&(_ZTV4gg51[27]), 27,28},
+ {&(_tg__ZTV4ee51__4gg51[4]), 4,5},
+ {&(_tg__ZTV4aa51__4ee51__4gg51[3]), 3,4},
+ {&(_tg__ZTV4bb51__4ee51__4gg51[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg51[];
+extern VTBL_ENTRY _ZTV4gg51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg51[];
+static VTBL_ENTRY alt_thunk_names126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee513fooEv,_ZTv0_n12_N4ee513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee513fooEv,_ZThn16_N4ee513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee513fooEv,_ZThn8_N4ee513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg513fooEv,_ZTv0_n12_N4gg513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg513fooEv,_ZThn32_N4gg513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg513fooEv,_ZThn24_N4gg513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg513fooEv,_ZThn16_N4gg513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg513fooEv,_ZTv0_n20_N4gg513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg513fooEv,_ZThn8_N4gg513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg51 = { "gg51", // class name
+ bases_gg51, 6,
+ &(vtc_gg51[0]), // expected_vtbl_contents
+ &(vtt_gg51[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg51),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg51),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg51),9, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa52 {
+ int a;
+ aa52(); // _ZN4aa52C1Ev
+ virtual void foo(); // _ZN4aa523fooEv
+ ~aa52(); // tgen
+};
+//SIG(-1 aa52) C1{ v1 Fi}
+
+
+ aa52 ::aa52(){ note_ctor("aa52", this);}
+void aa52 ::foo(){vfunc_called(this, "_ZN4aa523fooEv");}
+aa52 ::~aa52(){ note_dtor("aa52", this);} // tgen
+
+static void Test_aa52()
+{
+ extern Class_Descriptor cd_aa52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa52, buf);
+ aa52 *dp, &lv = *(dp=new (buf) aa52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa52)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa52.a");
+ test_class_info(&lv, &cd_aa52);
+ dp->~aa52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa52(Test_aa52, "aa52", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa52C1Ev();
+extern void _ZN4aa52D1Ev();
+Name_Map name_map_aa52[] = {
+ NSPAIR(_ZN4aa52C1Ev),
+ NSPAIR(_ZN4aa52D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa52[];
+extern void _ZN4aa523fooEv();
+static VTBL_ENTRY vtc_aa52[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa52[0]),
+ (VTBL_ENTRY)&_ZN4aa523fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa52[];
+extern VTBL_ENTRY _ZTV4aa52[];
+Class_Descriptor cd_aa52 = { "aa52", // class name
+ 0,0,//no base classes
+ &(vtc_aa52[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa52),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa52),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb52 {
+ int b;
+ bb52(); // _ZN4bb52C1Ev
+ virtual void foo(); // _ZN4bb523fooEv
+ ~bb52(); // tgen
+};
+//SIG(-1 bb52) C1{ v1 Fi}
+
+
+ bb52 ::bb52(){ note_ctor("bb52", this);}
+void bb52 ::foo(){vfunc_called(this, "_ZN4bb523fooEv");}
+bb52 ::~bb52(){ note_dtor("bb52", this);} // tgen
+
+static void Test_bb52()
+{
+ extern Class_Descriptor cd_bb52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb52, buf);
+ bb52 *dp, &lv = *(dp=new (buf) bb52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb52)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb52.b");
+ test_class_info(&lv, &cd_bb52);
+ dp->~bb52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb52(Test_bb52, "bb52", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb52C1Ev();
+extern void _ZN4bb52D1Ev();
+Name_Map name_map_bb52[] = {
+ NSPAIR(_ZN4bb52C1Ev),
+ NSPAIR(_ZN4bb52D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb52[];
+extern void _ZN4bb523fooEv();
+static VTBL_ENTRY vtc_bb52[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+Class_Descriptor cd_bb52 = { "bb52", // class name
+ 0,0,//no base classes
+ &(vtc_bb52[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb52),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb52),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc52 {
+ int c;
+ cc52(); // _ZN4cc52C1Ev
+ virtual void foo(); // _ZN4cc523fooEv
+ ~cc52(); // tgen
+};
+//SIG(-1 cc52) C1{ v1 Fi}
+
+
+ cc52 ::cc52(){ note_ctor("cc52", this);}
+void cc52 ::foo(){vfunc_called(this, "_ZN4cc523fooEv");}
+cc52 ::~cc52(){ note_dtor("cc52", this);} // tgen
+
+static void Test_cc52()
+{
+ extern Class_Descriptor cd_cc52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc52, buf);
+ cc52 *dp, &lv = *(dp=new (buf) cc52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc52)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc52.c");
+ test_class_info(&lv, &cd_cc52);
+ dp->~cc52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc52(Test_cc52, "cc52", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc52C1Ev();
+extern void _ZN4cc52D1Ev();
+Name_Map name_map_cc52[] = {
+ NSPAIR(_ZN4cc52C1Ev),
+ NSPAIR(_ZN4cc52D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc52[];
+extern void _ZN4cc523fooEv();
+static VTBL_ENTRY vtc_cc52[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc52[0]),
+ (VTBL_ENTRY)&_ZN4cc523fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc52[];
+extern VTBL_ENTRY _ZTV4cc52[];
+Class_Descriptor cd_cc52 = { "cc52", // class name
+ 0,0,//no base classes
+ &(vtc_cc52[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc52),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc52),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd52 {
+ int d;
+ dd52(); // _ZN4dd52C1Ev
+ virtual void foo(); // _ZN4dd523fooEv
+ ~dd52(); // tgen
+};
+//SIG(-1 dd52) C1{ v1 Fi}
+
+
+ dd52 ::dd52(){ note_ctor("dd52", this);}
+void dd52 ::foo(){vfunc_called(this, "_ZN4dd523fooEv");}
+dd52 ::~dd52(){ note_dtor("dd52", this);} // tgen
+
+static void Test_dd52()
+{
+ extern Class_Descriptor cd_dd52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd52, buf);
+ dd52 *dp, &lv = *(dp=new (buf) dd52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd52)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd52.d");
+ test_class_info(&lv, &cd_dd52);
+ dp->~dd52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd52(Test_dd52, "dd52", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd52C1Ev();
+extern void _ZN4dd52D1Ev();
+Name_Map name_map_dd52[] = {
+ NSPAIR(_ZN4dd52C1Ev),
+ NSPAIR(_ZN4dd52D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd52[];
+extern void _ZN4dd523fooEv();
+static VTBL_ENTRY vtc_dd52[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd52[0]),
+ (VTBL_ENTRY)&_ZN4dd523fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd52[];
+extern VTBL_ENTRY _ZTV4dd52[];
+Class_Descriptor cd_dd52 = { "dd52", // class name
+ 0,0,//no base classes
+ &(vtc_dd52[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd52),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd52),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52 : aa52 , bb52 {
+ int e;
+ ee52(); // _ZN4ee52C1Ev
+ virtual void foo(); // _ZN4ee523fooEv
+ ~ee52(); // tgen
+};
+//SIG(-1 ee52) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee52 ::ee52(){ note_ctor("ee52", this);}
+void ee52 ::foo(){vfunc_called(this, "_ZN4ee523fooEv");}
+ee52 ::~ee52(){ note_dtor("ee52", this);} // tgen
+
+static void Test_ee52()
+{
+ extern Class_Descriptor cd_ee52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee52, buf);
+ ee52 *dp, &lv = *(dp=new (buf) ee52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52)");
+ check_base_class_offset(lv, (aa52*), 0, "ee52");
+ check_base_class_offset(lv, (bb52*), ABISELECT(16,8), "ee52");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee52.e");
+ test_class_info(&lv, &cd_ee52);
+ dp->~ee52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52(Test_ee52, "ee52", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee52C1Ev();
+extern void _ZN4ee52D1Ev();
+Name_Map name_map_ee52[] = {
+ NSPAIR(_ZN4ee52C1Ev),
+ NSPAIR(_ZN4ee52D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa52;
+extern VTBL_ENTRY _ZTI4aa52[];
+extern VTBL_ENTRY _ZTV4aa52[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+static Base_Class bases_ee52[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee52[];
+extern void _ZN4ee523fooEv();
+extern void ABISELECT(_ZThn16_N4ee523fooEv,_ZThn8_N4ee523fooEv)();
+static VTBL_ENTRY vtc_ee52[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee52[0]),
+ (VTBL_ENTRY)&_ZN4ee523fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee523fooEv,_ZThn8_N4ee523fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee52[];
+extern VTBL_ENTRY _ZTV4ee52[];
+Class_Descriptor cd_ee52 = { "ee52", // class name
+ bases_ee52, 2,
+ &(vtc_ee52[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee52),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee52),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff52 : virtual cc52 , dd52 {
+ int f;
+ ff52(const ABISELECT(__tsi64,int) *const *); // _ZN4ff52C2Ev
+ virtual void foo(); // _ZN4ff523fooEv
+ ~ff52(); // tgen
+ ff52(); // tgen
+};
+//SIG(-1 ff52) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff52 ::ff52(const ABISELECT(__tsi64,int) *const *){}
+void ff52 ::foo(){vfunc_called(this, "_ZN4ff523fooEv");}
+ff52 ::~ff52(){ note_dtor("ff52", this);} // tgen
+ff52 ::ff52(){ note_ctor("ff52", this);} // tgen
+
+static void Test_ff52()
+{
+ extern Class_Descriptor cd_ff52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff52, buf);
+ ff52 *dp, &lv = *(dp=new (buf) ff52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff52)");
+ check_base_class_offset(lv, (cc52*), ABISELECT(16,12), "ff52");
+ check_base_class_offset(lv, (dd52*), 0, "ff52");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff52.f");
+ test_class_info(&lv, &cd_ff52);
+ dp->~ff52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff52(Test_ff52, "ff52", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff52C1Ev();
+extern void _ZN4ff52D1Ev();
+Name_Map name_map_ff52[] = {
+ NSPAIR(_ZN4ff52C1Ev),
+ NSPAIR(_ZN4ff52D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc52;
+extern VTBL_ENTRY _ZTI4cc52[];
+extern VTBL_ENTRY _ZTV4cc52[];
+extern Class_Descriptor cd_dd52;
+extern VTBL_ENTRY _ZTI4dd52[];
+extern VTBL_ENTRY _ZTV4dd52[];
+static Base_Class bases_ff52[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc52, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff52[];
+extern void _ZN4ff523fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff523fooEv,_ZTv0_n12_N4ff523fooEv)();
+extern void ABISELECT(_ZThn16_N4ff523fooEv,_ZThn12_N4ff523fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff52[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff52[0]),
+ (VTBL_ENTRY)&_ZN4ff523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff523fooEv,_ZTv0_n12_N4ff523fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff52[];
+static VTT_ENTRY vtt_ff52[] = {
+ {&(_ZTV4ff52[3]), 3,8},
+ {&(_ZTV4ff52[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff52[];
+extern VTBL_ENTRY _ZTV4ff52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff52[];
+static VTBL_ENTRY alt_thunk_names127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff523fooEv,_ZTv0_n12_N4ff523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff523fooEv,_ZThn12_N4ff523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff52 = { "ff52", // class name
+ bases_ff52, 2,
+ &(vtc_ff52[0]), // expected_vtbl_contents
+ &(vtt_ff52[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff52),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff52),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff52),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names127,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg52 : virtual ee52 , virtual ff52 {
+ int g;
+ gg52(const ABISELECT(__tsi64,int) *const *); // _ZN4gg52C2Ev
+ virtual void foo(); // _ZN4gg523fooEv
+ ~gg52(); // tgen
+ gg52(); // tgen
+};
+//SIG(1 gg52) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg52 ::gg52(const ABISELECT(__tsi64,int) *const *){}
+void gg52 ::foo(){vfunc_called(this, "_ZN4gg523fooEv");}
+gg52 ::~gg52(){ note_dtor("gg52", this);} // tgen
+gg52 ::gg52(){ note_ctor("gg52", this);} // tgen
+
+static void Test_gg52()
+{
+ extern Class_Descriptor cd_gg52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg52, buf);
+ gg52 *dp, &lv = *(dp=new (buf) gg52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg52)");
+ check_base_class_offset(lv, (aa52*)(ee52*), ABISELECT(16,8), "gg52");
+ check_base_class_offset(lv, (bb52*)(ee52*), ABISELECT(32,16), "gg52");
+ check_base_class_offset(lv, (ee52*), ABISELECT(16,8), "gg52");
+ check_base_class_offset(lv, (cc52*)(ff52*), ABISELECT(64,40), "gg52");
+ check_base_class_offset(lv, (dd52*)(ff52*), ABISELECT(48,28), "gg52");
+ check_base_class_offset(lv, (ff52*), ABISELECT(48,28), "gg52");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg52.g");
+ test_class_info(&lv, &cd_gg52);
+ dp->~gg52();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg52(Test_gg52, "gg52", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg52C1Ev();
+extern void _ZN4gg52D1Ev();
+Name_Map name_map_gg52[] = {
+ NSPAIR(_ZN4gg52C1Ev),
+ NSPAIR(_ZN4gg52D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa52;
+extern VTBL_ENTRY _ZTI4aa52[];
+extern VTBL_ENTRY _ZTV4aa52[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern Class_Descriptor cd_ee52;
+extern VTBL_ENTRY _ZTI4ee52[];
+extern VTBL_ENTRY _ZTV4ee52[];
+extern Class_Descriptor cd_cc52;
+extern VTBL_ENTRY _ZTI4cc52[];
+extern VTBL_ENTRY _ZTV4cc52[];
+extern Class_Descriptor cd_dd52;
+extern VTBL_ENTRY _ZTI4dd52[];
+extern VTBL_ENTRY _ZTV4dd52[];
+extern Class_Descriptor cd_ff52;
+extern VTBL_ENTRY _ZTI4ff52[];
+extern VTBL_ENTRY _ZTV4ff52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff52[];
+static Base_Class bases_gg52[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee52, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc52, ABISELECT(64,40), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd52, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff52, ABISELECT(48,28), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg52[];
+extern void _ZN4gg523fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg523fooEv,_ZTv0_n12_N4gg523fooEv)();
+extern void ABISELECT(_ZThn16_N4gg523fooEv,_ZThn8_N4gg523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg523fooEv,_ZTvn8_n12_N4gg523fooEv)();
+extern void ABISELECT(_ZTv0_n32_N4gg523fooEv,_ZTv0_n16_N4gg523fooEv)();
+extern void ABISELECT(_ZThn48_N4gg523fooEv,_ZThn28_N4gg523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg523fooEv,_ZTv0_n12_N4gg523fooEv)();
+extern void ABISELECT(_ZThn64_N4gg523fooEv,_ZThn40_N4gg523fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg52[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg52[0]),
+ (VTBL_ENTRY)&_ZN4gg523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg523fooEv,_ZTv0_n12_N4gg523fooEv),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg523fooEv,_ZTvn8_n12_N4gg523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg523fooEv,_ZTv0_n16_N4gg523fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg523fooEv,_ZTv0_n12_N4gg523fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg52[];
+extern void _ZN4ff523fooEv();
+static VTBL_ENTRY _tg__ZTV4ff52__4gg52[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff52[0]),
+ (VTBL_ENTRY)&_ZN4ff523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff523fooEv,_ZTv0_n12_N4ff523fooEv)();
+extern void ABISELECT(_ZThn16_N4ff523fooEv,_ZThn12_N4ff523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc52__4ff52__4gg52[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff52[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff523fooEv,_ZTv0_n12_N4ff523fooEv),
+};
+static VTT_ENTRY vtt_gg52[] = {
+ {&(_ZTV4gg52[5]), 5,22},
+ {&(_ZTV4gg52[9]), 9,22},
+ {&(_ZTV4gg52[12]), 12,22},
+ {&(_ZTV4gg52[17]), 17,22},
+ {&(_ZTV4gg52[21]), 21,22},
+ {&(_tg__ZTV4ff52__4gg52[3]), 3,4},
+ {&(_tg__ZTV4cc52__4ff52__4gg52[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg52[];
+extern VTBL_ENTRY _ZTV4gg52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg52[];
+static VTBL_ENTRY alt_thunk_names128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff523fooEv,_ZTv0_n12_N4ff523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff523fooEv,_ZThn12_N4ff523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg523fooEv,_ZTv0_n16_N4gg523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg523fooEv,_ZThn28_N4gg523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg523fooEv,_ZTv0_n12_N4gg523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg523fooEv,_ZThn40_N4gg523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg523fooEv,_ZThn8_N4gg523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg52 = { "gg52", // class name
+ bases_gg52, 6,
+ &(vtc_gg52[0]), // expected_vtbl_contents
+ &(vtt_gg52[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg52),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg52),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg52),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names128,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa53 {
+ int a;
+ aa53(); // _ZN4aa53C1Ev
+ virtual void foo(); // _ZN4aa533fooEv
+ ~aa53(); // tgen
+};
+//SIG(-1 aa53) C1{ v1 Fi}
+
+
+ aa53 ::aa53(){ note_ctor("aa53", this);}
+void aa53 ::foo(){vfunc_called(this, "_ZN4aa533fooEv");}
+aa53 ::~aa53(){ note_dtor("aa53", this);} // tgen
+
+static void Test_aa53()
+{
+ extern Class_Descriptor cd_aa53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa53, buf);
+ aa53 *dp, &lv = *(dp=new (buf) aa53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa53)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa53.a");
+ test_class_info(&lv, &cd_aa53);
+ dp->~aa53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa53(Test_aa53, "aa53", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa53C1Ev();
+extern void _ZN4aa53D1Ev();
+Name_Map name_map_aa53[] = {
+ NSPAIR(_ZN4aa53C1Ev),
+ NSPAIR(_ZN4aa53D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa53[];
+extern void _ZN4aa533fooEv();
+static VTBL_ENTRY vtc_aa53[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa53[0]),
+ (VTBL_ENTRY)&_ZN4aa533fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa53[];
+extern VTBL_ENTRY _ZTV4aa53[];
+Class_Descriptor cd_aa53 = { "aa53", // class name
+ 0,0,//no base classes
+ &(vtc_aa53[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa53),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa53),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb53 {
+ int b;
+ bb53(); // _ZN4bb53C1Ev
+ virtual void foo(); // _ZN4bb533fooEv
+ ~bb53(); // tgen
+};
+//SIG(-1 bb53) C1{ v1 Fi}
+
+
+ bb53 ::bb53(){ note_ctor("bb53", this);}
+void bb53 ::foo(){vfunc_called(this, "_ZN4bb533fooEv");}
+bb53 ::~bb53(){ note_dtor("bb53", this);} // tgen
+
+static void Test_bb53()
+{
+ extern Class_Descriptor cd_bb53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb53, buf);
+ bb53 *dp, &lv = *(dp=new (buf) bb53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb53)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb53.b");
+ test_class_info(&lv, &cd_bb53);
+ dp->~bb53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb53(Test_bb53, "bb53", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb53C1Ev();
+extern void _ZN4bb53D1Ev();
+Name_Map name_map_bb53[] = {
+ NSPAIR(_ZN4bb53C1Ev),
+ NSPAIR(_ZN4bb53D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb53[];
+extern void _ZN4bb533fooEv();
+static VTBL_ENTRY vtc_bb53[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb53[0]),
+ (VTBL_ENTRY)&_ZN4bb533fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb53[];
+extern VTBL_ENTRY _ZTV4bb53[];
+Class_Descriptor cd_bb53 = { "bb53", // class name
+ 0,0,//no base classes
+ &(vtc_bb53[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb53),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb53),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc53 {
+ int c;
+ cc53(); // _ZN4cc53C1Ev
+ virtual void foo(); // _ZN4cc533fooEv
+ ~cc53(); // tgen
+};
+//SIG(-1 cc53) C1{ v1 Fi}
+
+
+ cc53 ::cc53(){ note_ctor("cc53", this);}
+void cc53 ::foo(){vfunc_called(this, "_ZN4cc533fooEv");}
+cc53 ::~cc53(){ note_dtor("cc53", this);} // tgen
+
+static void Test_cc53()
+{
+ extern Class_Descriptor cd_cc53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc53, buf);
+ cc53 *dp, &lv = *(dp=new (buf) cc53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc53)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc53.c");
+ test_class_info(&lv, &cd_cc53);
+ dp->~cc53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc53(Test_cc53, "cc53", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc53C1Ev();
+extern void _ZN4cc53D1Ev();
+Name_Map name_map_cc53[] = {
+ NSPAIR(_ZN4cc53C1Ev),
+ NSPAIR(_ZN4cc53D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc53[];
+extern void _ZN4cc533fooEv();
+static VTBL_ENTRY vtc_cc53[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc53[0]),
+ (VTBL_ENTRY)&_ZN4cc533fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc53[];
+extern VTBL_ENTRY _ZTV4cc53[];
+Class_Descriptor cd_cc53 = { "cc53", // class name
+ 0,0,//no base classes
+ &(vtc_cc53[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc53),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc53),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd53 {
+ int d;
+ dd53(); // _ZN4dd53C1Ev
+ virtual void foo(); // _ZN4dd533fooEv
+ ~dd53(); // tgen
+};
+//SIG(-1 dd53) C1{ v1 Fi}
+
+
+ dd53 ::dd53(){ note_ctor("dd53", this);}
+void dd53 ::foo(){vfunc_called(this, "_ZN4dd533fooEv");}
+dd53 ::~dd53(){ note_dtor("dd53", this);} // tgen
+
+static void Test_dd53()
+{
+ extern Class_Descriptor cd_dd53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd53, buf);
+ dd53 *dp, &lv = *(dp=new (buf) dd53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd53)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd53.d");
+ test_class_info(&lv, &cd_dd53);
+ dp->~dd53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd53(Test_dd53, "dd53", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd53C1Ev();
+extern void _ZN4dd53D1Ev();
+Name_Map name_map_dd53[] = {
+ NSPAIR(_ZN4dd53C1Ev),
+ NSPAIR(_ZN4dd53D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd53[];
+extern void _ZN4dd533fooEv();
+static VTBL_ENTRY vtc_dd53[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd53[0]),
+ (VTBL_ENTRY)&_ZN4dd533fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd53[];
+extern VTBL_ENTRY _ZTV4dd53[];
+Class_Descriptor cd_dd53 = { "dd53", // class name
+ 0,0,//no base classes
+ &(vtc_dd53[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd53),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd53),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53 : virtual aa53 , bb53 {
+ int e;
+ ee53(const ABISELECT(__tsi64,int) *const *); // _ZN4ee53C2Ev
+ virtual void foo(); // _ZN4ee533fooEv
+ ~ee53(); // tgen
+ ee53(); // tgen
+};
+//SIG(-1 ee53) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee53 ::ee53(const ABISELECT(__tsi64,int) *const *){}
+void ee53 ::foo(){vfunc_called(this, "_ZN4ee533fooEv");}
+ee53 ::~ee53(){ note_dtor("ee53", this);} // tgen
+ee53 ::ee53(){ note_ctor("ee53", this);} // tgen
+
+static void Test_ee53()
+{
+ extern Class_Descriptor cd_ee53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee53, buf);
+ ee53 *dp, &lv = *(dp=new (buf) ee53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53)");
+ check_base_class_offset(lv, (aa53*), ABISELECT(16,12), "ee53");
+ check_base_class_offset(lv, (bb53*), 0, "ee53");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee53.e");
+ test_class_info(&lv, &cd_ee53);
+ dp->~ee53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53(Test_ee53, "ee53", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee53C1Ev();
+extern void _ZN4ee53D1Ev();
+Name_Map name_map_ee53[] = {
+ NSPAIR(_ZN4ee53C1Ev),
+ NSPAIR(_ZN4ee53D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa53;
+extern VTBL_ENTRY _ZTI4aa53[];
+extern VTBL_ENTRY _ZTV4aa53[];
+extern Class_Descriptor cd_bb53;
+extern VTBL_ENTRY _ZTI4bb53[];
+extern VTBL_ENTRY _ZTV4bb53[];
+static Base_Class bases_ee53[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa53, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb53, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee53[];
+extern void _ZN4ee533fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee533fooEv,_ZTv0_n12_N4ee533fooEv)();
+extern void ABISELECT(_ZThn16_N4ee533fooEv,_ZThn12_N4ee533fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee53[0]),
+ (VTBL_ENTRY)&_ZN4ee533fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee533fooEv,_ZTv0_n12_N4ee533fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee53[];
+static VTT_ENTRY vtt_ee53[] = {
+ {&(_ZTV4ee53[3]), 3,8},
+ {&(_ZTV4ee53[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee53[];
+extern VTBL_ENTRY _ZTV4ee53[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee53[];
+static VTBL_ENTRY alt_thunk_names129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee533fooEv,_ZTv0_n12_N4ee533fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee533fooEv,_ZThn12_N4ee533fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53 = { "ee53", // class name
+ bases_ee53, 2,
+ &(vtc_ee53[0]), // expected_vtbl_contents
+ &(vtt_ee53[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee53),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee53),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee53),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff53 : virtual cc53 , dd53 {
+ int f;
+ ff53(const ABISELECT(__tsi64,int) *const *); // _ZN4ff53C2Ev
+ virtual void foo(); // _ZN4ff533fooEv
+ ~ff53(); // tgen
+ ff53(); // tgen
+};
+//SIG(-1 ff53) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff53 ::ff53(const ABISELECT(__tsi64,int) *const *){}
+void ff53 ::foo(){vfunc_called(this, "_ZN4ff533fooEv");}
+ff53 ::~ff53(){ note_dtor("ff53", this);} // tgen
+ff53 ::ff53(){ note_ctor("ff53", this);} // tgen
+
+static void Test_ff53()
+{
+ extern Class_Descriptor cd_ff53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff53, buf);
+ ff53 *dp, &lv = *(dp=new (buf) ff53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff53)");
+ check_base_class_offset(lv, (cc53*), ABISELECT(16,12), "ff53");
+ check_base_class_offset(lv, (dd53*), 0, "ff53");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff53.f");
+ test_class_info(&lv, &cd_ff53);
+ dp->~ff53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff53(Test_ff53, "ff53", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff53C1Ev();
+extern void _ZN4ff53D1Ev();
+Name_Map name_map_ff53[] = {
+ NSPAIR(_ZN4ff53C1Ev),
+ NSPAIR(_ZN4ff53D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc53;
+extern VTBL_ENTRY _ZTI4cc53[];
+extern VTBL_ENTRY _ZTV4cc53[];
+extern Class_Descriptor cd_dd53;
+extern VTBL_ENTRY _ZTI4dd53[];
+extern VTBL_ENTRY _ZTV4dd53[];
+static Base_Class bases_ff53[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc53, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd53, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff53[];
+extern void _ZN4ff533fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff533fooEv,_ZTv0_n12_N4ff533fooEv)();
+extern void ABISELECT(_ZThn16_N4ff533fooEv,_ZThn12_N4ff533fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff53[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff53[0]),
+ (VTBL_ENTRY)&_ZN4ff533fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff533fooEv,_ZTv0_n12_N4ff533fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff53[];
+static VTT_ENTRY vtt_ff53[] = {
+ {&(_ZTV4ff53[3]), 3,8},
+ {&(_ZTV4ff53[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff53[];
+extern VTBL_ENTRY _ZTV4ff53[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff53[];
+static VTBL_ENTRY alt_thunk_names130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff533fooEv,_ZTv0_n12_N4ff533fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff533fooEv,_ZThn12_N4ff533fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff53 = { "ff53", // class name
+ bases_ff53, 2,
+ &(vtc_ff53[0]), // expected_vtbl_contents
+ &(vtt_ff53[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff53),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff53),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff53),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg53 : virtual ee53 , virtual ff53 {
+ int g;
+ gg53(const ABISELECT(__tsi64,int) *const *); // _ZN4gg53C2Ev
+ virtual void foo(); // _ZN4gg533fooEv
+ ~gg53(); // tgen
+ gg53(); // tgen
+};
+//SIG(1 gg53) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg53 ::gg53(const ABISELECT(__tsi64,int) *const *){}
+void gg53 ::foo(){vfunc_called(this, "_ZN4gg533fooEv");}
+gg53 ::~gg53(){ note_dtor("gg53", this);} // tgen
+gg53 ::gg53(){ note_ctor("gg53", this);} // tgen
+
+static void Test_gg53()
+{
+ extern Class_Descriptor cd_gg53;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg53, buf);
+ gg53 *dp, &lv = *(dp=new (buf) gg53());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg53)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg53)");
+ check_base_class_offset(lv, (aa53*)(ee53*), ABISELECT(32,20), "gg53");
+ check_base_class_offset(lv, (bb53*)(ee53*), ABISELECT(16,8), "gg53");
+ check_base_class_offset(lv, (ee53*), ABISELECT(16,8), "gg53");
+ check_base_class_offset(lv, (cc53*)(ff53*), ABISELECT(64,40), "gg53");
+ check_base_class_offset(lv, (dd53*)(ff53*), ABISELECT(48,28), "gg53");
+ check_base_class_offset(lv, (ff53*), ABISELECT(48,28), "gg53");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg53.g");
+ test_class_info(&lv, &cd_gg53);
+ dp->~gg53();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg53(Test_gg53, "gg53", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg53C1Ev();
+extern void _ZN4gg53D1Ev();
+Name_Map name_map_gg53[] = {
+ NSPAIR(_ZN4gg53C1Ev),
+ NSPAIR(_ZN4gg53D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa53;
+extern VTBL_ENTRY _ZTI4aa53[];
+extern VTBL_ENTRY _ZTV4aa53[];
+extern Class_Descriptor cd_bb53;
+extern VTBL_ENTRY _ZTI4bb53[];
+extern VTBL_ENTRY _ZTV4bb53[];
+extern Class_Descriptor cd_ee53;
+extern VTBL_ENTRY _ZTI4ee53[];
+extern VTBL_ENTRY _ZTV4ee53[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee53[];
+extern Class_Descriptor cd_cc53;
+extern VTBL_ENTRY _ZTI4cc53[];
+extern VTBL_ENTRY _ZTV4cc53[];
+extern Class_Descriptor cd_dd53;
+extern VTBL_ENTRY _ZTI4dd53[];
+extern VTBL_ENTRY _ZTV4dd53[];
+extern Class_Descriptor cd_ff53;
+extern VTBL_ENTRY _ZTI4ff53[];
+extern VTBL_ENTRY _ZTV4ff53[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff53[];
+static Base_Class bases_gg53[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa53, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb53, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee53, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc53, ABISELECT(64,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd53, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff53, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg53[];
+extern void _ZN4gg533fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg533fooEv,_ZTv0_n16_N4gg533fooEv)();
+extern void ABISELECT(_ZThn16_N4gg533fooEv,_ZThn8_N4gg533fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg533fooEv,_ZTv0_n12_N4gg533fooEv)();
+extern void ABISELECT(_ZThn32_N4gg533fooEv,_ZThn20_N4gg533fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg533fooEv,_ZTv0_n16_N4gg533fooEv)();
+extern void ABISELECT(_ZThn48_N4gg533fooEv,_ZThn28_N4gg533fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg533fooEv,_ZTv0_n12_N4gg533fooEv)();
+extern void ABISELECT(_ZThn64_N4gg533fooEv,_ZThn40_N4gg533fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg53[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg53[0]),
+ (VTBL_ENTRY)&_ZN4gg533fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg533fooEv,_ZTv0_n16_N4gg533fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg533fooEv,_ZTv0_n12_N4gg533fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg533fooEv,_ZTv0_n16_N4gg533fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg533fooEv,_ZTv0_n12_N4gg533fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg53[];
+extern void _ZN4ee533fooEv();
+static VTBL_ENTRY _tg__ZTV4ee53__4gg53[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee53[0]),
+ (VTBL_ENTRY)&_ZN4ee533fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee533fooEv,_ZTv0_n12_N4ee533fooEv)();
+extern void ABISELECT(_ZThn16_N4ee533fooEv,_ZThn12_N4ee533fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa53__4ee53__4gg53[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee533fooEv,_ZTv0_n12_N4ee533fooEv),
+};
+extern void _ZN4ff533fooEv();
+static VTBL_ENTRY _tg__ZTV4ff53__4gg53[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff53[0]),
+ (VTBL_ENTRY)&_ZN4ff533fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff533fooEv,_ZTv0_n12_N4ff533fooEv)();
+extern void ABISELECT(_ZThn16_N4ff533fooEv,_ZThn12_N4ff533fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc53__4ff53__4gg53[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff53[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff533fooEv,_ZTv0_n12_N4ff533fooEv),
+};
+static VTT_ENTRY vtt_gg53[] = {
+ {&(_ZTV4gg53[6]), 6,25},
+ {&(_ZTV4gg53[11]), 11,25},
+ {&(_ZTV4gg53[15]), 15,25},
+ {&(_ZTV4gg53[20]), 20,25},
+ {&(_ZTV4gg53[24]), 24,25},
+ {&(_tg__ZTV4ee53__4gg53[3]), 3,4},
+ {&(_tg__ZTV4aa53__4ee53__4gg53[3]), 3,4},
+ {&(_tg__ZTV4ff53__4gg53[3]), 3,4},
+ {&(_tg__ZTV4cc53__4ff53__4gg53[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg53[];
+extern VTBL_ENTRY _ZTV4gg53[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg53[];
+static VTBL_ENTRY alt_thunk_names131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff533fooEv,_ZTv0_n12_N4ff533fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff533fooEv,_ZThn12_N4ff533fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee533fooEv,_ZTv0_n12_N4ee533fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee533fooEv,_ZThn12_N4ee533fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg533fooEv,_ZTv0_n12_N4gg533fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg533fooEv,_ZThn40_N4gg533fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg533fooEv,_ZThn20_N4gg533fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg533fooEv,_ZTv0_n16_N4gg533fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg533fooEv,_ZThn28_N4gg533fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg533fooEv,_ZThn8_N4gg533fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg53 = { "gg53", // class name
+ bases_gg53, 6,
+ &(vtc_gg53[0]), // expected_vtbl_contents
+ &(vtt_gg53[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg53),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg53),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg53),9, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa54 {
+ int a;
+ aa54(); // _ZN4aa54C1Ev
+ virtual void foo(); // _ZN4aa543fooEv
+ ~aa54(); // tgen
+};
+//SIG(-1 aa54) C1{ v1 Fi}
+
+
+ aa54 ::aa54(){ note_ctor("aa54", this);}
+void aa54 ::foo(){vfunc_called(this, "_ZN4aa543fooEv");}
+aa54 ::~aa54(){ note_dtor("aa54", this);} // tgen
+
+static void Test_aa54()
+{
+ extern Class_Descriptor cd_aa54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa54, buf);
+ aa54 *dp, &lv = *(dp=new (buf) aa54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa54)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa54.a");
+ test_class_info(&lv, &cd_aa54);
+ dp->~aa54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa54(Test_aa54, "aa54", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa54C1Ev();
+extern void _ZN4aa54D1Ev();
+Name_Map name_map_aa54[] = {
+ NSPAIR(_ZN4aa54C1Ev),
+ NSPAIR(_ZN4aa54D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa54[];
+extern void _ZN4aa543fooEv();
+static VTBL_ENTRY vtc_aa54[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa54[0]),
+ (VTBL_ENTRY)&_ZN4aa543fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa54[];
+extern VTBL_ENTRY _ZTV4aa54[];
+Class_Descriptor cd_aa54 = { "aa54", // class name
+ 0,0,//no base classes
+ &(vtc_aa54[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa54),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa54),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb54 {
+ int b;
+ bb54(); // _ZN4bb54C1Ev
+ virtual void foo(); // _ZN4bb543fooEv
+ ~bb54(); // tgen
+};
+//SIG(-1 bb54) C1{ v1 Fi}
+
+
+ bb54 ::bb54(){ note_ctor("bb54", this);}
+void bb54 ::foo(){vfunc_called(this, "_ZN4bb543fooEv");}
+bb54 ::~bb54(){ note_dtor("bb54", this);} // tgen
+
+static void Test_bb54()
+{
+ extern Class_Descriptor cd_bb54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb54, buf);
+ bb54 *dp, &lv = *(dp=new (buf) bb54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb54)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb54.b");
+ test_class_info(&lv, &cd_bb54);
+ dp->~bb54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb54(Test_bb54, "bb54", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb54C1Ev();
+extern void _ZN4bb54D1Ev();
+Name_Map name_map_bb54[] = {
+ NSPAIR(_ZN4bb54C1Ev),
+ NSPAIR(_ZN4bb54D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb54[];
+extern void _ZN4bb543fooEv();
+static VTBL_ENTRY vtc_bb54[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb54[0]),
+ (VTBL_ENTRY)&_ZN4bb543fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb54[];
+extern VTBL_ENTRY _ZTV4bb54[];
+Class_Descriptor cd_bb54 = { "bb54", // class name
+ 0,0,//no base classes
+ &(vtc_bb54[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb54),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb54),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc54 {
+ int c;
+ cc54(); // _ZN4cc54C1Ev
+ virtual void foo(); // _ZN4cc543fooEv
+ ~cc54(); // tgen
+};
+//SIG(-1 cc54) C1{ v1 Fi}
+
+
+ cc54 ::cc54(){ note_ctor("cc54", this);}
+void cc54 ::foo(){vfunc_called(this, "_ZN4cc543fooEv");}
+cc54 ::~cc54(){ note_dtor("cc54", this);} // tgen
+
+static void Test_cc54()
+{
+ extern Class_Descriptor cd_cc54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc54, buf);
+ cc54 *dp, &lv = *(dp=new (buf) cc54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc54)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc54.c");
+ test_class_info(&lv, &cd_cc54);
+ dp->~cc54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc54(Test_cc54, "cc54", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc54C1Ev();
+extern void _ZN4cc54D1Ev();
+Name_Map name_map_cc54[] = {
+ NSPAIR(_ZN4cc54C1Ev),
+ NSPAIR(_ZN4cc54D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc54[];
+extern void _ZN4cc543fooEv();
+static VTBL_ENTRY vtc_cc54[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc54[0]),
+ (VTBL_ENTRY)&_ZN4cc543fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc54[];
+extern VTBL_ENTRY _ZTV4cc54[];
+Class_Descriptor cd_cc54 = { "cc54", // class name
+ 0,0,//no base classes
+ &(vtc_cc54[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc54),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc54),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd54 {
+ int d;
+ dd54(); // _ZN4dd54C1Ev
+ virtual void foo(); // _ZN4dd543fooEv
+ ~dd54(); // tgen
+};
+//SIG(-1 dd54) C1{ v1 Fi}
+
+
+ dd54 ::dd54(){ note_ctor("dd54", this);}
+void dd54 ::foo(){vfunc_called(this, "_ZN4dd543fooEv");}
+dd54 ::~dd54(){ note_dtor("dd54", this);} // tgen
+
+static void Test_dd54()
+{
+ extern Class_Descriptor cd_dd54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd54, buf);
+ dd54 *dp, &lv = *(dp=new (buf) dd54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd54)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd54.d");
+ test_class_info(&lv, &cd_dd54);
+ dp->~dd54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd54(Test_dd54, "dd54", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd54C1Ev();
+extern void _ZN4dd54D1Ev();
+Name_Map name_map_dd54[] = {
+ NSPAIR(_ZN4dd54C1Ev),
+ NSPAIR(_ZN4dd54D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd54[];
+extern void _ZN4dd543fooEv();
+static VTBL_ENTRY vtc_dd54[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd54[0]),
+ (VTBL_ENTRY)&_ZN4dd543fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd54[];
+extern VTBL_ENTRY _ZTV4dd54[];
+Class_Descriptor cd_dd54 = { "dd54", // class name
+ 0,0,//no base classes
+ &(vtc_dd54[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd54),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd54),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54 : aa54 , virtual bb54 {
+ int e;
+ ee54(const ABISELECT(__tsi64,int) *const *); // _ZN4ee54C2Ev
+ virtual void foo(); // _ZN4ee543fooEv
+ ~ee54(); // tgen
+ ee54(); // tgen
+};
+//SIG(-1 ee54) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee54 ::ee54(const ABISELECT(__tsi64,int) *const *){}
+void ee54 ::foo(){vfunc_called(this, "_ZN4ee543fooEv");}
+ee54 ::~ee54(){ note_dtor("ee54", this);} // tgen
+ee54 ::ee54(){ note_ctor("ee54", this);} // tgen
+
+static void Test_ee54()
+{
+ extern Class_Descriptor cd_ee54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee54, buf);
+ ee54 *dp, &lv = *(dp=new (buf) ee54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54)");
+ check_base_class_offset(lv, (aa54*), 0, "ee54");
+ check_base_class_offset(lv, (bb54*), ABISELECT(16,12), "ee54");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee54.e");
+ test_class_info(&lv, &cd_ee54);
+ dp->~ee54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54(Test_ee54, "ee54", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee54C1Ev();
+extern void _ZN4ee54D1Ev();
+Name_Map name_map_ee54[] = {
+ NSPAIR(_ZN4ee54C1Ev),
+ NSPAIR(_ZN4ee54D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa54;
+extern VTBL_ENTRY _ZTI4aa54[];
+extern VTBL_ENTRY _ZTV4aa54[];
+extern Class_Descriptor cd_bb54;
+extern VTBL_ENTRY _ZTI4bb54[];
+extern VTBL_ENTRY _ZTV4bb54[];
+static Base_Class bases_ee54[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa54, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb54, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee54[];
+extern void _ZN4ee543fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee543fooEv,_ZTv0_n12_N4ee543fooEv)();
+extern void ABISELECT(_ZThn16_N4ee543fooEv,_ZThn12_N4ee543fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee54[0]),
+ (VTBL_ENTRY)&_ZN4ee543fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee543fooEv,_ZTv0_n12_N4ee543fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee54[];
+static VTT_ENTRY vtt_ee54[] = {
+ {&(_ZTV4ee54[3]), 3,8},
+ {&(_ZTV4ee54[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee54[];
+extern VTBL_ENTRY _ZTV4ee54[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee54[];
+static VTBL_ENTRY alt_thunk_names132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee543fooEv,_ZTv0_n12_N4ee543fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee543fooEv,_ZThn12_N4ee543fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54 = { "ee54", // class name
+ bases_ee54, 2,
+ &(vtc_ee54[0]), // expected_vtbl_contents
+ &(vtt_ee54[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee54),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee54),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee54),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff54 : virtual cc54 , dd54 {
+ int f;
+ ff54(const ABISELECT(__tsi64,int) *const *); // _ZN4ff54C2Ev
+ virtual void foo(); // _ZN4ff543fooEv
+ ~ff54(); // tgen
+ ff54(); // tgen
+};
+//SIG(-1 ff54) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff54 ::ff54(const ABISELECT(__tsi64,int) *const *){}
+void ff54 ::foo(){vfunc_called(this, "_ZN4ff543fooEv");}
+ff54 ::~ff54(){ note_dtor("ff54", this);} // tgen
+ff54 ::ff54(){ note_ctor("ff54", this);} // tgen
+
+static void Test_ff54()
+{
+ extern Class_Descriptor cd_ff54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff54, buf);
+ ff54 *dp, &lv = *(dp=new (buf) ff54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff54)");
+ check_base_class_offset(lv, (cc54*), ABISELECT(16,12), "ff54");
+ check_base_class_offset(lv, (dd54*), 0, "ff54");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff54.f");
+ test_class_info(&lv, &cd_ff54);
+ dp->~ff54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff54(Test_ff54, "ff54", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff54C1Ev();
+extern void _ZN4ff54D1Ev();
+Name_Map name_map_ff54[] = {
+ NSPAIR(_ZN4ff54C1Ev),
+ NSPAIR(_ZN4ff54D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc54;
+extern VTBL_ENTRY _ZTI4cc54[];
+extern VTBL_ENTRY _ZTV4cc54[];
+extern Class_Descriptor cd_dd54;
+extern VTBL_ENTRY _ZTI4dd54[];
+extern VTBL_ENTRY _ZTV4dd54[];
+static Base_Class bases_ff54[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc54, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd54, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff54[];
+extern void _ZN4ff543fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff543fooEv,_ZTv0_n12_N4ff543fooEv)();
+extern void ABISELECT(_ZThn16_N4ff543fooEv,_ZThn12_N4ff543fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff54[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff54[0]),
+ (VTBL_ENTRY)&_ZN4ff543fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff543fooEv,_ZTv0_n12_N4ff543fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff54[];
+static VTT_ENTRY vtt_ff54[] = {
+ {&(_ZTV4ff54[3]), 3,8},
+ {&(_ZTV4ff54[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff54[];
+extern VTBL_ENTRY _ZTV4ff54[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff54[];
+static VTBL_ENTRY alt_thunk_names133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff543fooEv,_ZTv0_n12_N4ff543fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff543fooEv,_ZThn12_N4ff543fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff54 = { "ff54", // class name
+ bases_ff54, 2,
+ &(vtc_ff54[0]), // expected_vtbl_contents
+ &(vtt_ff54[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff54),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff54),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff54),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg54 : virtual ee54 , virtual ff54 {
+ int g;
+ gg54(const ABISELECT(__tsi64,int) *const *); // _ZN4gg54C2Ev
+ virtual void foo(); // _ZN4gg543fooEv
+ ~gg54(); // tgen
+ gg54(); // tgen
+};
+//SIG(1 gg54) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg54 ::gg54(const ABISELECT(__tsi64,int) *const *){}
+void gg54 ::foo(){vfunc_called(this, "_ZN4gg543fooEv");}
+gg54 ::~gg54(){ note_dtor("gg54", this);} // tgen
+gg54 ::gg54(){ note_ctor("gg54", this);} // tgen
+
+static void Test_gg54()
+{
+ extern Class_Descriptor cd_gg54;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg54, buf);
+ gg54 *dp, &lv = *(dp=new (buf) gg54());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg54)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg54)");
+ check_base_class_offset(lv, (aa54*)(ee54*), ABISELECT(16,8), "gg54");
+ check_base_class_offset(lv, (bb54*)(ee54*), ABISELECT(32,20), "gg54");
+ check_base_class_offset(lv, (ee54*), ABISELECT(16,8), "gg54");
+ check_base_class_offset(lv, (cc54*)(ff54*), ABISELECT(64,40), "gg54");
+ check_base_class_offset(lv, (dd54*)(ff54*), ABISELECT(48,28), "gg54");
+ check_base_class_offset(lv, (ff54*), ABISELECT(48,28), "gg54");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg54.g");
+ test_class_info(&lv, &cd_gg54);
+ dp->~gg54();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg54(Test_gg54, "gg54", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg54C1Ev();
+extern void _ZN4gg54D1Ev();
+Name_Map name_map_gg54[] = {
+ NSPAIR(_ZN4gg54C1Ev),
+ NSPAIR(_ZN4gg54D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa54;
+extern VTBL_ENTRY _ZTI4aa54[];
+extern VTBL_ENTRY _ZTV4aa54[];
+extern Class_Descriptor cd_bb54;
+extern VTBL_ENTRY _ZTI4bb54[];
+extern VTBL_ENTRY _ZTV4bb54[];
+extern Class_Descriptor cd_ee54;
+extern VTBL_ENTRY _ZTI4ee54[];
+extern VTBL_ENTRY _ZTV4ee54[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee54[];
+extern Class_Descriptor cd_cc54;
+extern VTBL_ENTRY _ZTI4cc54[];
+extern VTBL_ENTRY _ZTV4cc54[];
+extern Class_Descriptor cd_dd54;
+extern VTBL_ENTRY _ZTI4dd54[];
+extern VTBL_ENTRY _ZTV4dd54[];
+extern Class_Descriptor cd_ff54;
+extern VTBL_ENTRY _ZTI4ff54[];
+extern VTBL_ENTRY _ZTV4ff54[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff54[];
+static Base_Class bases_gg54[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa54, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb54, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee54, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc54, ABISELECT(64,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd54, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff54, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg54[];
+extern void _ZN4gg543fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg543fooEv,_ZTv0_n16_N4gg543fooEv)();
+extern void ABISELECT(_ZThn16_N4gg543fooEv,_ZThn8_N4gg543fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg543fooEv,_ZTv0_n12_N4gg543fooEv)();
+extern void ABISELECT(_ZThn32_N4gg543fooEv,_ZThn20_N4gg543fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg543fooEv,_ZTv0_n16_N4gg543fooEv)();
+extern void ABISELECT(_ZThn48_N4gg543fooEv,_ZThn28_N4gg543fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg543fooEv,_ZTv0_n12_N4gg543fooEv)();
+extern void ABISELECT(_ZThn64_N4gg543fooEv,_ZThn40_N4gg543fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg54[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg54[0]),
+ (VTBL_ENTRY)&_ZN4gg543fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg543fooEv,_ZTv0_n16_N4gg543fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg543fooEv,_ZTv0_n12_N4gg543fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg543fooEv,_ZTv0_n16_N4gg543fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg543fooEv,_ZTv0_n12_N4gg543fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg54[];
+extern void _ZN4ee543fooEv();
+static VTBL_ENTRY _tg__ZTV4ee54__4gg54[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee54[0]),
+ (VTBL_ENTRY)&_ZN4ee543fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee543fooEv,_ZTv0_n12_N4ee543fooEv)();
+extern void ABISELECT(_ZThn16_N4ee543fooEv,_ZThn12_N4ee543fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb54__4ee54__4gg54[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee543fooEv,_ZTv0_n12_N4ee543fooEv),
+};
+extern void _ZN4ff543fooEv();
+static VTBL_ENTRY _tg__ZTV4ff54__4gg54[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff54[0]),
+ (VTBL_ENTRY)&_ZN4ff543fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff543fooEv,_ZTv0_n12_N4ff543fooEv)();
+extern void ABISELECT(_ZThn16_N4ff543fooEv,_ZThn12_N4ff543fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc54__4ff54__4gg54[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff54[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff543fooEv,_ZTv0_n12_N4ff543fooEv),
+};
+static VTT_ENTRY vtt_gg54[] = {
+ {&(_ZTV4gg54[6]), 6,25},
+ {&(_ZTV4gg54[11]), 11,25},
+ {&(_ZTV4gg54[15]), 15,25},
+ {&(_ZTV4gg54[20]), 20,25},
+ {&(_ZTV4gg54[24]), 24,25},
+ {&(_tg__ZTV4ee54__4gg54[3]), 3,4},
+ {&(_tg__ZTV4bb54__4ee54__4gg54[3]), 3,4},
+ {&(_tg__ZTV4ff54__4gg54[3]), 3,4},
+ {&(_tg__ZTV4cc54__4ff54__4gg54[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg54[];
+extern VTBL_ENTRY _ZTV4gg54[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg54[];
+static VTBL_ENTRY alt_thunk_names134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff543fooEv,_ZTv0_n12_N4ff543fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff543fooEv,_ZThn12_N4ff543fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee543fooEv,_ZTv0_n12_N4ee543fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee543fooEv,_ZThn12_N4ee543fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg543fooEv,_ZTv0_n12_N4gg543fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg543fooEv,_ZThn40_N4gg543fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg543fooEv,_ZThn20_N4gg543fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg543fooEv,_ZTv0_n16_N4gg543fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg543fooEv,_ZThn28_N4gg543fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg543fooEv,_ZThn8_N4gg543fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg54 = { "gg54", // class name
+ bases_gg54, 6,
+ &(vtc_gg54[0]), // expected_vtbl_contents
+ &(vtt_gg54[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg54),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg54),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg54),9, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa55 {
+ int a;
+ aa55(); // _ZN4aa55C1Ev
+ virtual void foo(); // _ZN4aa553fooEv
+ ~aa55(); // tgen
+};
+//SIG(-1 aa55) C1{ v1 Fi}
+
+
+ aa55 ::aa55(){ note_ctor("aa55", this);}
+void aa55 ::foo(){vfunc_called(this, "_ZN4aa553fooEv");}
+aa55 ::~aa55(){ note_dtor("aa55", this);} // tgen
+
+static void Test_aa55()
+{
+ extern Class_Descriptor cd_aa55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa55, buf);
+ aa55 *dp, &lv = *(dp=new (buf) aa55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa55)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa55.a");
+ test_class_info(&lv, &cd_aa55);
+ dp->~aa55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa55(Test_aa55, "aa55", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa55C1Ev();
+extern void _ZN4aa55D1Ev();
+Name_Map name_map_aa55[] = {
+ NSPAIR(_ZN4aa55C1Ev),
+ NSPAIR(_ZN4aa55D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa55[];
+extern void _ZN4aa553fooEv();
+static VTBL_ENTRY vtc_aa55[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa55[0]),
+ (VTBL_ENTRY)&_ZN4aa553fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa55[];
+extern VTBL_ENTRY _ZTV4aa55[];
+Class_Descriptor cd_aa55 = { "aa55", // class name
+ 0,0,//no base classes
+ &(vtc_aa55[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa55),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa55),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb55 {
+ int b;
+ bb55(); // _ZN4bb55C1Ev
+ virtual void foo(); // _ZN4bb553fooEv
+ ~bb55(); // tgen
+};
+//SIG(-1 bb55) C1{ v1 Fi}
+
+
+ bb55 ::bb55(){ note_ctor("bb55", this);}
+void bb55 ::foo(){vfunc_called(this, "_ZN4bb553fooEv");}
+bb55 ::~bb55(){ note_dtor("bb55", this);} // tgen
+
+static void Test_bb55()
+{
+ extern Class_Descriptor cd_bb55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb55, buf);
+ bb55 *dp, &lv = *(dp=new (buf) bb55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb55)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb55.b");
+ test_class_info(&lv, &cd_bb55);
+ dp->~bb55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb55(Test_bb55, "bb55", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb55C1Ev();
+extern void _ZN4bb55D1Ev();
+Name_Map name_map_bb55[] = {
+ NSPAIR(_ZN4bb55C1Ev),
+ NSPAIR(_ZN4bb55D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb55[];
+extern void _ZN4bb553fooEv();
+static VTBL_ENTRY vtc_bb55[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb55[0]),
+ (VTBL_ENTRY)&_ZN4bb553fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb55[];
+extern VTBL_ENTRY _ZTV4bb55[];
+Class_Descriptor cd_bb55 = { "bb55", // class name
+ 0,0,//no base classes
+ &(vtc_bb55[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb55),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb55),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc55 {
+ int c;
+ cc55(); // _ZN4cc55C1Ev
+ virtual void foo(); // _ZN4cc553fooEv
+ ~cc55(); // tgen
+};
+//SIG(-1 cc55) C1{ v1 Fi}
+
+
+ cc55 ::cc55(){ note_ctor("cc55", this);}
+void cc55 ::foo(){vfunc_called(this, "_ZN4cc553fooEv");}
+cc55 ::~cc55(){ note_dtor("cc55", this);} // tgen
+
+static void Test_cc55()
+{
+ extern Class_Descriptor cd_cc55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc55, buf);
+ cc55 *dp, &lv = *(dp=new (buf) cc55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc55)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc55.c");
+ test_class_info(&lv, &cd_cc55);
+ dp->~cc55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc55(Test_cc55, "cc55", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc55C1Ev();
+extern void _ZN4cc55D1Ev();
+Name_Map name_map_cc55[] = {
+ NSPAIR(_ZN4cc55C1Ev),
+ NSPAIR(_ZN4cc55D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc55[];
+extern void _ZN4cc553fooEv();
+static VTBL_ENTRY vtc_cc55[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc55[0]),
+ (VTBL_ENTRY)&_ZN4cc553fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc55[];
+extern VTBL_ENTRY _ZTV4cc55[];
+Class_Descriptor cd_cc55 = { "cc55", // class name
+ 0,0,//no base classes
+ &(vtc_cc55[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc55),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc55),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd55 {
+ int d;
+ dd55(); // _ZN4dd55C1Ev
+ virtual void foo(); // _ZN4dd553fooEv
+ ~dd55(); // tgen
+};
+//SIG(-1 dd55) C1{ v1 Fi}
+
+
+ dd55 ::dd55(){ note_ctor("dd55", this);}
+void dd55 ::foo(){vfunc_called(this, "_ZN4dd553fooEv");}
+dd55 ::~dd55(){ note_dtor("dd55", this);} // tgen
+
+static void Test_dd55()
+{
+ extern Class_Descriptor cd_dd55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd55, buf);
+ dd55 *dp, &lv = *(dp=new (buf) dd55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd55)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd55.d");
+ test_class_info(&lv, &cd_dd55);
+ dp->~dd55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd55(Test_dd55, "dd55", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd55C1Ev();
+extern void _ZN4dd55D1Ev();
+Name_Map name_map_dd55[] = {
+ NSPAIR(_ZN4dd55C1Ev),
+ NSPAIR(_ZN4dd55D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd55[];
+extern void _ZN4dd553fooEv();
+static VTBL_ENTRY vtc_dd55[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd55[0]),
+ (VTBL_ENTRY)&_ZN4dd553fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd55[];
+extern VTBL_ENTRY _ZTV4dd55[];
+Class_Descriptor cd_dd55 = { "dd55", // class name
+ 0,0,//no base classes
+ &(vtc_dd55[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd55),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd55),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55 : virtual aa55 , virtual bb55 {
+ int e;
+ ee55(const ABISELECT(__tsi64,int) *const *); // _ZN4ee55C2Ev
+ virtual void foo(); // _ZN4ee553fooEv
+ ~ee55(); // tgen
+ ee55(); // tgen
+};
+//SIG(-1 ee55) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee55 ::ee55(const ABISELECT(__tsi64,int) *const *){}
+void ee55 ::foo(){vfunc_called(this, "_ZN4ee553fooEv");}
+ee55 ::~ee55(){ note_dtor("ee55", this);} // tgen
+ee55 ::ee55(){ note_ctor("ee55", this);} // tgen
+
+static void Test_ee55()
+{
+ extern Class_Descriptor cd_ee55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee55, buf);
+ ee55 *dp, &lv = *(dp=new (buf) ee55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55)");
+ check_base_class_offset(lv, (aa55*), ABISELECT(16,8), "ee55");
+ check_base_class_offset(lv, (bb55*), ABISELECT(32,16), "ee55");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55.e");
+ test_class_info(&lv, &cd_ee55);
+ dp->~ee55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55(Test_ee55, "ee55", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee55C1Ev();
+extern void _ZN4ee55D1Ev();
+Name_Map name_map_ee55[] = {
+ NSPAIR(_ZN4ee55C1Ev),
+ NSPAIR(_ZN4ee55D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa55;
+extern VTBL_ENTRY _ZTI4aa55[];
+extern VTBL_ENTRY _ZTV4aa55[];
+extern Class_Descriptor cd_bb55;
+extern VTBL_ENTRY _ZTI4bb55[];
+extern VTBL_ENTRY _ZTV4bb55[];
+static Base_Class bases_ee55[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa55, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb55, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee55[];
+extern void _ZN4ee553fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv)();
+extern void ABISELECT(_ZThn16_N4ee553fooEv,_ZThn8_N4ee553fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv)();
+extern void ABISELECT(_ZThn32_N4ee553fooEv,_ZThn16_N4ee553fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee55[0]),
+ (VTBL_ENTRY)&_ZN4ee553fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee55[];
+static VTT_ENTRY vtt_ee55[] = {
+ {&(_ZTV4ee55[4]), 4,13},
+ {&(_ZTV4ee55[8]), 8,13},
+ {&(_ZTV4ee55[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee55[];
+extern VTBL_ENTRY _ZTV4ee55[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee55[];
+static VTBL_ENTRY alt_thunk_names135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee553fooEv,_ZThn16_N4ee553fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee553fooEv,_ZThn8_N4ee553fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55 = { "ee55", // class name
+ bases_ee55, 2,
+ &(vtc_ee55[0]), // expected_vtbl_contents
+ &(vtt_ee55[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee55),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee55),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee55),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff55 : virtual cc55 , dd55 {
+ int f;
+ ff55(const ABISELECT(__tsi64,int) *const *); // _ZN4ff55C2Ev
+ virtual void foo(); // _ZN4ff553fooEv
+ ~ff55(); // tgen
+ ff55(); // tgen
+};
+//SIG(-1 ff55) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ff55 ::ff55(const ABISELECT(__tsi64,int) *const *){}
+void ff55 ::foo(){vfunc_called(this, "_ZN4ff553fooEv");}
+ff55 ::~ff55(){ note_dtor("ff55", this);} // tgen
+ff55 ::ff55(){ note_ctor("ff55", this);} // tgen
+
+static void Test_ff55()
+{
+ extern Class_Descriptor cd_ff55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff55, buf);
+ ff55 *dp, &lv = *(dp=new (buf) ff55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff55)");
+ check_base_class_offset(lv, (cc55*), ABISELECT(16,12), "ff55");
+ check_base_class_offset(lv, (dd55*), 0, "ff55");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff55.f");
+ test_class_info(&lv, &cd_ff55);
+ dp->~ff55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff55(Test_ff55, "ff55", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff55C1Ev();
+extern void _ZN4ff55D1Ev();
+Name_Map name_map_ff55[] = {
+ NSPAIR(_ZN4ff55C1Ev),
+ NSPAIR(_ZN4ff55D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc55;
+extern VTBL_ENTRY _ZTI4cc55[];
+extern VTBL_ENTRY _ZTV4cc55[];
+extern Class_Descriptor cd_dd55;
+extern VTBL_ENTRY _ZTI4dd55[];
+extern VTBL_ENTRY _ZTV4dd55[];
+static Base_Class bases_ff55[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc55, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd55, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff55[];
+extern void _ZN4ff553fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff553fooEv,_ZTv0_n12_N4ff553fooEv)();
+extern void ABISELECT(_ZThn16_N4ff553fooEv,_ZThn12_N4ff553fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff55[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff55[0]),
+ (VTBL_ENTRY)&_ZN4ff553fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff553fooEv,_ZTv0_n12_N4ff553fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff55[];
+static VTT_ENTRY vtt_ff55[] = {
+ {&(_ZTV4ff55[3]), 3,8},
+ {&(_ZTV4ff55[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff55[];
+extern VTBL_ENTRY _ZTV4ff55[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff55[];
+static VTBL_ENTRY alt_thunk_names136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff553fooEv,_ZTv0_n12_N4ff553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff553fooEv,_ZThn12_N4ff553fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff55 = { "ff55", // class name
+ bases_ff55, 2,
+ &(vtc_ff55[0]), // expected_vtbl_contents
+ &(vtt_ff55[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff55),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff55),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff55),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg55 : virtual ee55 , virtual ff55 {
+ int g;
+ gg55(const ABISELECT(__tsi64,int) *const *); // _ZN4gg55C2Ev
+ virtual void foo(); // _ZN4gg553fooEv
+ ~gg55(); // tgen
+ gg55(); // tgen
+};
+//SIG(1 gg55) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} BC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg55 ::gg55(const ABISELECT(__tsi64,int) *const *){}
+void gg55 ::foo(){vfunc_called(this, "_ZN4gg553fooEv");}
+gg55 ::~gg55(){ note_dtor("gg55", this);} // tgen
+gg55 ::gg55(){ note_ctor("gg55", this);} // tgen
+
+static void Test_gg55()
+{
+ extern Class_Descriptor cd_gg55;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg55, buf);
+ gg55 *dp, &lv = *(dp=new (buf) gg55());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg55)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg55)");
+ check_base_class_offset(lv, (aa55*)(ee55*), ABISELECT(32,16), "gg55");
+ check_base_class_offset(lv, (bb55*)(ee55*), ABISELECT(48,24), "gg55");
+ check_base_class_offset(lv, (ee55*), ABISELECT(16,8), "gg55");
+ check_base_class_offset(lv, (cc55*)(ff55*), ABISELECT(80,44), "gg55");
+ check_base_class_offset(lv, (dd55*)(ff55*), ABISELECT(64,32), "gg55");
+ check_base_class_offset(lv, (ff55*), ABISELECT(64,32), "gg55");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg55.g");
+ test_class_info(&lv, &cd_gg55);
+ dp->~gg55();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg55(Test_gg55, "gg55", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg55C1Ev();
+extern void _ZN4gg55D1Ev();
+Name_Map name_map_gg55[] = {
+ NSPAIR(_ZN4gg55C1Ev),
+ NSPAIR(_ZN4gg55D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa55;
+extern VTBL_ENTRY _ZTI4aa55[];
+extern VTBL_ENTRY _ZTV4aa55[];
+extern Class_Descriptor cd_bb55;
+extern VTBL_ENTRY _ZTI4bb55[];
+extern VTBL_ENTRY _ZTV4bb55[];
+extern Class_Descriptor cd_ee55;
+extern VTBL_ENTRY _ZTI4ee55[];
+extern VTBL_ENTRY _ZTV4ee55[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee55[];
+extern Class_Descriptor cd_cc55;
+extern VTBL_ENTRY _ZTI4cc55[];
+extern VTBL_ENTRY _ZTV4cc55[];
+extern Class_Descriptor cd_dd55;
+extern VTBL_ENTRY _ZTI4dd55[];
+extern VTBL_ENTRY _ZTV4dd55[];
+extern Class_Descriptor cd_ff55;
+extern VTBL_ENTRY _ZTI4ff55[];
+extern VTBL_ENTRY _ZTV4ff55[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff55[];
+static Base_Class bases_gg55[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa55, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb55, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee55, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc55, ABISELECT(80,44), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd55, ABISELECT(64,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_ff55, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg55[];
+extern void _ZN4gg553fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg553fooEv,_ZTv0_n20_N4gg553fooEv)();
+extern void ABISELECT(_ZThn16_N4gg553fooEv,_ZThn8_N4gg553fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv)();
+extern void ABISELECT(_ZThn32_N4gg553fooEv,_ZThn16_N4gg553fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv)();
+extern void ABISELECT(_ZThn48_N4gg553fooEv,_ZThn24_N4gg553fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg553fooEv,_ZTv0_n16_N4gg553fooEv)();
+extern void ABISELECT(_ZThn64_N4gg553fooEv,_ZThn32_N4gg553fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv)();
+extern void ABISELECT(_ZThn80_N4gg553fooEv,_ZThn44_N4gg553fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg55[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg55[0]),
+ (VTBL_ENTRY)&_ZN4gg553fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg553fooEv,_ZTv0_n20_N4gg553fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI4gg55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,12),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI4gg55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg553fooEv,_ZTv0_n16_N4gg553fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg55[];
+extern void _ZN4ee553fooEv();
+static VTBL_ENTRY _tg__ZTV4ee55__4gg55[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee55[0]),
+ (VTBL_ENTRY)&_ZN4ee553fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv)();
+extern void ABISELECT(_ZThn16_N4ee553fooEv,_ZThn8_N4ee553fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa55__4ee55__4gg55[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv)();
+extern void ABISELECT(_ZThn32_N4ee553fooEv,_ZThn16_N4ee553fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb55__4ee55__4gg55[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv),
+};
+extern void _ZN4ff553fooEv();
+static VTBL_ENTRY _tg__ZTV4ff55__4gg55[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff55[0]),
+ (VTBL_ENTRY)&_ZN4ff553fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff553fooEv,_ZTv0_n12_N4ff553fooEv)();
+extern void ABISELECT(_ZThn16_N4ff553fooEv,_ZThn12_N4ff553fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc55__4ff55__4gg55[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff55[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff553fooEv,_ZTv0_n12_N4ff553fooEv),
+};
+static VTT_ENTRY vtt_gg55[] = {
+ {&(_ZTV4gg55[7]), 7,31},
+ {&(_ZTV4gg55[13]), 13,31},
+ {&(_ZTV4gg55[17]), 17,31},
+ {&(_ZTV4gg55[21]), 21,31},
+ {&(_ZTV4gg55[26]), 26,31},
+ {&(_ZTV4gg55[30]), 30,31},
+ {&(_tg__ZTV4ee55__4gg55[4]), 4,5},
+ {&(_tg__ZTV4aa55__4ee55__4gg55[3]), 3,4},
+ {&(_tg__ZTV4bb55__4ee55__4gg55[3]), 3,4},
+ {&(_tg__ZTV4ff55__4gg55[3]), 3,4},
+ {&(_tg__ZTV4cc55__4ff55__4gg55[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg55[];
+extern VTBL_ENTRY _ZTV4gg55[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg55[];
+static VTBL_ENTRY alt_thunk_names137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff553fooEv,_ZTv0_n12_N4ff553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff553fooEv,_ZThn12_N4ff553fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee553fooEv,_ZTv0_n12_N4ee553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee553fooEv,_ZThn16_N4ee553fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee553fooEv,_ZThn8_N4ee553fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg553fooEv,_ZTv0_n16_N4gg553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg553fooEv,_ZThn32_N4gg553fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg553fooEv,_ZTv0_n12_N4gg553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg553fooEv,_ZThn44_N4gg553fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg553fooEv,_ZThn24_N4gg553fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg553fooEv,_ZThn16_N4gg553fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg553fooEv,_ZTv0_n20_N4gg553fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg553fooEv,_ZThn8_N4gg553fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg55 = { "gg55", // class name
+ bases_gg55, 6,
+ &(vtc_gg55[0]), // expected_vtbl_contents
+ &(vtt_gg55[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg55),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg55),31, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg55),11, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa56 {
+ int a;
+ aa56(); // _ZN4aa56C1Ev
+ virtual void foo(); // _ZN4aa563fooEv
+ ~aa56(); // tgen
+};
+//SIG(-1 aa56) C1{ v1 Fi}
+
+
+ aa56 ::aa56(){ note_ctor("aa56", this);}
+void aa56 ::foo(){vfunc_called(this, "_ZN4aa563fooEv");}
+aa56 ::~aa56(){ note_dtor("aa56", this);} // tgen
+
+static void Test_aa56()
+{
+ extern Class_Descriptor cd_aa56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa56, buf);
+ aa56 *dp, &lv = *(dp=new (buf) aa56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa56)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa56.a");
+ test_class_info(&lv, &cd_aa56);
+ dp->~aa56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa56(Test_aa56, "aa56", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa56C1Ev();
+extern void _ZN4aa56D1Ev();
+Name_Map name_map_aa56[] = {
+ NSPAIR(_ZN4aa56C1Ev),
+ NSPAIR(_ZN4aa56D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa56[];
+extern void _ZN4aa563fooEv();
+static VTBL_ENTRY vtc_aa56[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa56[0]),
+ (VTBL_ENTRY)&_ZN4aa563fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa56[];
+extern VTBL_ENTRY _ZTV4aa56[];
+Class_Descriptor cd_aa56 = { "aa56", // class name
+ 0,0,//no base classes
+ &(vtc_aa56[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa56),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa56),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb56 {
+ int b;
+ bb56(); // _ZN4bb56C1Ev
+ virtual void foo(); // _ZN4bb563fooEv
+ ~bb56(); // tgen
+};
+//SIG(-1 bb56) C1{ v1 Fi}
+
+
+ bb56 ::bb56(){ note_ctor("bb56", this);}
+void bb56 ::foo(){vfunc_called(this, "_ZN4bb563fooEv");}
+bb56 ::~bb56(){ note_dtor("bb56", this);} // tgen
+
+static void Test_bb56()
+{
+ extern Class_Descriptor cd_bb56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb56, buf);
+ bb56 *dp, &lv = *(dp=new (buf) bb56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb56)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb56.b");
+ test_class_info(&lv, &cd_bb56);
+ dp->~bb56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb56(Test_bb56, "bb56", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb56C1Ev();
+extern void _ZN4bb56D1Ev();
+Name_Map name_map_bb56[] = {
+ NSPAIR(_ZN4bb56C1Ev),
+ NSPAIR(_ZN4bb56D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb56[];
+extern void _ZN4bb563fooEv();
+static VTBL_ENTRY vtc_bb56[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb56[0]),
+ (VTBL_ENTRY)&_ZN4bb563fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb56[];
+extern VTBL_ENTRY _ZTV4bb56[];
+Class_Descriptor cd_bb56 = { "bb56", // class name
+ 0,0,//no base classes
+ &(vtc_bb56[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb56),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb56),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc56 {
+ int c;
+ cc56(); // _ZN4cc56C1Ev
+ virtual void foo(); // _ZN4cc563fooEv
+ ~cc56(); // tgen
+};
+//SIG(-1 cc56) C1{ v1 Fi}
+
+
+ cc56 ::cc56(){ note_ctor("cc56", this);}
+void cc56 ::foo(){vfunc_called(this, "_ZN4cc563fooEv");}
+cc56 ::~cc56(){ note_dtor("cc56", this);} // tgen
+
+static void Test_cc56()
+{
+ extern Class_Descriptor cd_cc56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc56, buf);
+ cc56 *dp, &lv = *(dp=new (buf) cc56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc56)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc56.c");
+ test_class_info(&lv, &cd_cc56);
+ dp->~cc56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc56(Test_cc56, "cc56", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc56C1Ev();
+extern void _ZN4cc56D1Ev();
+Name_Map name_map_cc56[] = {
+ NSPAIR(_ZN4cc56C1Ev),
+ NSPAIR(_ZN4cc56D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc56[];
+extern void _ZN4cc563fooEv();
+static VTBL_ENTRY vtc_cc56[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc56[0]),
+ (VTBL_ENTRY)&_ZN4cc563fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc56[];
+extern VTBL_ENTRY _ZTV4cc56[];
+Class_Descriptor cd_cc56 = { "cc56", // class name
+ 0,0,//no base classes
+ &(vtc_cc56[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc56),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc56),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd56 {
+ int d;
+ dd56(); // _ZN4dd56C1Ev
+ virtual void foo(); // _ZN4dd563fooEv
+ ~dd56(); // tgen
+};
+//SIG(-1 dd56) C1{ v1 Fi}
+
+
+ dd56 ::dd56(){ note_ctor("dd56", this);}
+void dd56 ::foo(){vfunc_called(this, "_ZN4dd563fooEv");}
+dd56 ::~dd56(){ note_dtor("dd56", this);} // tgen
+
+static void Test_dd56()
+{
+ extern Class_Descriptor cd_dd56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd56, buf);
+ dd56 *dp, &lv = *(dp=new (buf) dd56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd56)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd56.d");
+ test_class_info(&lv, &cd_dd56);
+ dp->~dd56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd56(Test_dd56, "dd56", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd56C1Ev();
+extern void _ZN4dd56D1Ev();
+Name_Map name_map_dd56[] = {
+ NSPAIR(_ZN4dd56C1Ev),
+ NSPAIR(_ZN4dd56D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd56[];
+extern void _ZN4dd563fooEv();
+static VTBL_ENTRY vtc_dd56[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd56[0]),
+ (VTBL_ENTRY)&_ZN4dd563fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd56[];
+extern VTBL_ENTRY _ZTV4dd56[];
+Class_Descriptor cd_dd56 = { "dd56", // class name
+ 0,0,//no base classes
+ &(vtc_dd56[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd56),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd56),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56 : aa56 , bb56 {
+ int e;
+ ee56(); // _ZN4ee56C1Ev
+ virtual void foo(); // _ZN4ee563fooEv
+ ~ee56(); // tgen
+};
+//SIG(-1 ee56) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee56 ::ee56(){ note_ctor("ee56", this);}
+void ee56 ::foo(){vfunc_called(this, "_ZN4ee563fooEv");}
+ee56 ::~ee56(){ note_dtor("ee56", this);} // tgen
+
+static void Test_ee56()
+{
+ extern Class_Descriptor cd_ee56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee56, buf);
+ ee56 *dp, &lv = *(dp=new (buf) ee56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56)");
+ check_base_class_offset(lv, (aa56*), 0, "ee56");
+ check_base_class_offset(lv, (bb56*), ABISELECT(16,8), "ee56");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee56.e");
+ test_class_info(&lv, &cd_ee56);
+ dp->~ee56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56(Test_ee56, "ee56", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee56C1Ev();
+extern void _ZN4ee56D1Ev();
+Name_Map name_map_ee56[] = {
+ NSPAIR(_ZN4ee56C1Ev),
+ NSPAIR(_ZN4ee56D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa56;
+extern VTBL_ENTRY _ZTI4aa56[];
+extern VTBL_ENTRY _ZTV4aa56[];
+extern Class_Descriptor cd_bb56;
+extern VTBL_ENTRY _ZTI4bb56[];
+extern VTBL_ENTRY _ZTV4bb56[];
+static Base_Class bases_ee56[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa56, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb56, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee56[];
+extern void _ZN4ee563fooEv();
+extern void ABISELECT(_ZThn16_N4ee563fooEv,_ZThn8_N4ee563fooEv)();
+static VTBL_ENTRY vtc_ee56[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee56[0]),
+ (VTBL_ENTRY)&_ZN4ee563fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee563fooEv,_ZThn8_N4ee563fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee56[];
+extern VTBL_ENTRY _ZTV4ee56[];
+Class_Descriptor cd_ee56 = { "ee56", // class name
+ bases_ee56, 2,
+ &(vtc_ee56[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee56),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee56),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff56 : cc56 , virtual dd56 {
+ int f;
+ ff56(const ABISELECT(__tsi64,int) *const *); // _ZN4ff56C2Ev
+ virtual void foo(); // _ZN4ff563fooEv
+ ~ff56(); // tgen
+ ff56(); // tgen
+};
+//SIG(-1 ff56) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff56 ::ff56(const ABISELECT(__tsi64,int) *const *){}
+void ff56 ::foo(){vfunc_called(this, "_ZN4ff563fooEv");}
+ff56 ::~ff56(){ note_dtor("ff56", this);} // tgen
+ff56 ::ff56(){ note_ctor("ff56", this);} // tgen
+
+static void Test_ff56()
+{
+ extern Class_Descriptor cd_ff56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff56, buf);
+ ff56 *dp, &lv = *(dp=new (buf) ff56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff56)");
+ check_base_class_offset(lv, (cc56*), 0, "ff56");
+ check_base_class_offset(lv, (dd56*), ABISELECT(16,12), "ff56");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff56.f");
+ test_class_info(&lv, &cd_ff56);
+ dp->~ff56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff56(Test_ff56, "ff56", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff56C1Ev();
+extern void _ZN4ff56D1Ev();
+Name_Map name_map_ff56[] = {
+ NSPAIR(_ZN4ff56C1Ev),
+ NSPAIR(_ZN4ff56D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc56;
+extern VTBL_ENTRY _ZTI4cc56[];
+extern VTBL_ENTRY _ZTV4cc56[];
+extern Class_Descriptor cd_dd56;
+extern VTBL_ENTRY _ZTI4dd56[];
+extern VTBL_ENTRY _ZTV4dd56[];
+static Base_Class bases_ff56[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc56, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd56, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff56[];
+extern void _ZN4ff563fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff563fooEv,_ZTv0_n12_N4ff563fooEv)();
+extern void ABISELECT(_ZThn16_N4ff563fooEv,_ZThn12_N4ff563fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff56[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff56[0]),
+ (VTBL_ENTRY)&_ZN4ff563fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff563fooEv,_ZTv0_n12_N4ff563fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff56[];
+static VTT_ENTRY vtt_ff56[] = {
+ {&(_ZTV4ff56[3]), 3,8},
+ {&(_ZTV4ff56[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff56[];
+extern VTBL_ENTRY _ZTV4ff56[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff56[];
+static VTBL_ENTRY alt_thunk_names138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff563fooEv,_ZTv0_n12_N4ff563fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff563fooEv,_ZThn12_N4ff563fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff56 = { "ff56", // class name
+ bases_ff56, 2,
+ &(vtc_ff56[0]), // expected_vtbl_contents
+ &(vtt_ff56[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff56),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff56),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff56),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg56 : virtual ee56 , virtual ff56 {
+ int g;
+ gg56(const ABISELECT(__tsi64,int) *const *); // _ZN4gg56C2Ev
+ virtual void foo(); // _ZN4gg563fooEv
+ ~gg56(); // tgen
+ gg56(); // tgen
+};
+//SIG(1 gg56) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg56 ::gg56(const ABISELECT(__tsi64,int) *const *){}
+void gg56 ::foo(){vfunc_called(this, "_ZN4gg563fooEv");}
+gg56 ::~gg56(){ note_dtor("gg56", this);} // tgen
+gg56 ::gg56(){ note_ctor("gg56", this);} // tgen
+
+static void Test_gg56()
+{
+ extern Class_Descriptor cd_gg56;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg56, buf);
+ gg56 *dp, &lv = *(dp=new (buf) gg56());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg56)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg56)");
+ check_base_class_offset(lv, (aa56*)(ee56*), ABISELECT(16,8), "gg56");
+ check_base_class_offset(lv, (bb56*)(ee56*), ABISELECT(32,16), "gg56");
+ check_base_class_offset(lv, (ee56*), ABISELECT(16,8), "gg56");
+ check_base_class_offset(lv, (cc56*)(ff56*), ABISELECT(48,28), "gg56");
+ check_base_class_offset(lv, (dd56*)(ff56*), ABISELECT(64,40), "gg56");
+ check_base_class_offset(lv, (ff56*), ABISELECT(48,28), "gg56");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg56.g");
+ test_class_info(&lv, &cd_gg56);
+ dp->~gg56();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg56(Test_gg56, "gg56", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg56C1Ev();
+extern void _ZN4gg56D1Ev();
+Name_Map name_map_gg56[] = {
+ NSPAIR(_ZN4gg56C1Ev),
+ NSPAIR(_ZN4gg56D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa56;
+extern VTBL_ENTRY _ZTI4aa56[];
+extern VTBL_ENTRY _ZTV4aa56[];
+extern Class_Descriptor cd_bb56;
+extern VTBL_ENTRY _ZTI4bb56[];
+extern VTBL_ENTRY _ZTV4bb56[];
+extern Class_Descriptor cd_ee56;
+extern VTBL_ENTRY _ZTI4ee56[];
+extern VTBL_ENTRY _ZTV4ee56[];
+extern Class_Descriptor cd_cc56;
+extern VTBL_ENTRY _ZTI4cc56[];
+extern VTBL_ENTRY _ZTV4cc56[];
+extern Class_Descriptor cd_dd56;
+extern VTBL_ENTRY _ZTI4dd56[];
+extern VTBL_ENTRY _ZTV4dd56[];
+extern Class_Descriptor cd_ff56;
+extern VTBL_ENTRY _ZTI4ff56[];
+extern VTBL_ENTRY _ZTV4ff56[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff56[];
+static Base_Class bases_gg56[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa56, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb56, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee56, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc56, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd56, ABISELECT(64,40), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff56, ABISELECT(48,28), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg56[];
+extern void _ZN4gg563fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg563fooEv,_ZTv0_n12_N4gg563fooEv)();
+extern void ABISELECT(_ZThn16_N4gg563fooEv,_ZThn8_N4gg563fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg563fooEv,_ZTvn8_n12_N4gg563fooEv)();
+extern void ABISELECT(_ZTv0_n32_N4gg563fooEv,_ZTv0_n16_N4gg563fooEv)();
+extern void ABISELECT(_ZThn48_N4gg563fooEv,_ZThn28_N4gg563fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg563fooEv,_ZTv0_n12_N4gg563fooEv)();
+extern void ABISELECT(_ZThn64_N4gg563fooEv,_ZThn40_N4gg563fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg56[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg56[0]),
+ (VTBL_ENTRY)&_ZN4gg563fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg563fooEv,_ZTv0_n12_N4gg563fooEv),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg563fooEv,_ZTvn8_n12_N4gg563fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg563fooEv,_ZTv0_n16_N4gg563fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg563fooEv,_ZTv0_n12_N4gg563fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg56[];
+extern void _ZN4ff563fooEv();
+static VTBL_ENTRY _tg__ZTV4ff56__4gg56[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff56[0]),
+ (VTBL_ENTRY)&_ZN4ff563fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff563fooEv,_ZTv0_n12_N4ff563fooEv)();
+extern void ABISELECT(_ZThn16_N4ff563fooEv,_ZThn12_N4ff563fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd56__4ff56__4gg56[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff56[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff563fooEv,_ZTv0_n12_N4ff563fooEv),
+};
+static VTT_ENTRY vtt_gg56[] = {
+ {&(_ZTV4gg56[5]), 5,22},
+ {&(_ZTV4gg56[9]), 9,22},
+ {&(_ZTV4gg56[12]), 12,22},
+ {&(_ZTV4gg56[17]), 17,22},
+ {&(_ZTV4gg56[21]), 21,22},
+ {&(_tg__ZTV4ff56__4gg56[3]), 3,4},
+ {&(_tg__ZTV4dd56__4ff56__4gg56[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg56[];
+extern VTBL_ENTRY _ZTV4gg56[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg56[];
+static VTBL_ENTRY alt_thunk_names139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff563fooEv,_ZTv0_n12_N4ff563fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff563fooEv,_ZThn12_N4ff563fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg563fooEv,_ZTv0_n16_N4gg563fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg563fooEv,_ZThn28_N4gg563fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg563fooEv,_ZTv0_n12_N4gg563fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg563fooEv,_ZThn40_N4gg563fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg563fooEv,_ZThn8_N4gg563fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg56 = { "gg56", // class name
+ bases_gg56, 6,
+ &(vtc_gg56[0]), // expected_vtbl_contents
+ &(vtt_gg56[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg56),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg56),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg56),7, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa57 {
+ int a;
+ aa57(); // _ZN4aa57C1Ev
+ virtual void foo(); // _ZN4aa573fooEv
+ ~aa57(); // tgen
+};
+//SIG(-1 aa57) C1{ v1 Fi}
+
+
+ aa57 ::aa57(){ note_ctor("aa57", this);}
+void aa57 ::foo(){vfunc_called(this, "_ZN4aa573fooEv");}
+aa57 ::~aa57(){ note_dtor("aa57", this);} // tgen
+
+static void Test_aa57()
+{
+ extern Class_Descriptor cd_aa57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa57, buf);
+ aa57 *dp, &lv = *(dp=new (buf) aa57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa57)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa57.a");
+ test_class_info(&lv, &cd_aa57);
+ dp->~aa57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa57(Test_aa57, "aa57", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa57C1Ev();
+extern void _ZN4aa57D1Ev();
+Name_Map name_map_aa57[] = {
+ NSPAIR(_ZN4aa57C1Ev),
+ NSPAIR(_ZN4aa57D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa57[];
+extern void _ZN4aa573fooEv();
+static VTBL_ENTRY vtc_aa57[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa57[0]),
+ (VTBL_ENTRY)&_ZN4aa573fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa57[];
+extern VTBL_ENTRY _ZTV4aa57[];
+Class_Descriptor cd_aa57 = { "aa57", // class name
+ 0,0,//no base classes
+ &(vtc_aa57[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa57),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa57),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb57 {
+ int b;
+ bb57(); // _ZN4bb57C1Ev
+ virtual void foo(); // _ZN4bb573fooEv
+ ~bb57(); // tgen
+};
+//SIG(-1 bb57) C1{ v1 Fi}
+
+
+ bb57 ::bb57(){ note_ctor("bb57", this);}
+void bb57 ::foo(){vfunc_called(this, "_ZN4bb573fooEv");}
+bb57 ::~bb57(){ note_dtor("bb57", this);} // tgen
+
+static void Test_bb57()
+{
+ extern Class_Descriptor cd_bb57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb57, buf);
+ bb57 *dp, &lv = *(dp=new (buf) bb57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb57)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb57.b");
+ test_class_info(&lv, &cd_bb57);
+ dp->~bb57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb57(Test_bb57, "bb57", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb57C1Ev();
+extern void _ZN4bb57D1Ev();
+Name_Map name_map_bb57[] = {
+ NSPAIR(_ZN4bb57C1Ev),
+ NSPAIR(_ZN4bb57D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb57[];
+extern void _ZN4bb573fooEv();
+static VTBL_ENTRY vtc_bb57[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb57[0]),
+ (VTBL_ENTRY)&_ZN4bb573fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb57[];
+extern VTBL_ENTRY _ZTV4bb57[];
+Class_Descriptor cd_bb57 = { "bb57", // class name
+ 0,0,//no base classes
+ &(vtc_bb57[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb57),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb57),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc57 {
+ int c;
+ cc57(); // _ZN4cc57C1Ev
+ virtual void foo(); // _ZN4cc573fooEv
+ ~cc57(); // tgen
+};
+//SIG(-1 cc57) C1{ v1 Fi}
+
+
+ cc57 ::cc57(){ note_ctor("cc57", this);}
+void cc57 ::foo(){vfunc_called(this, "_ZN4cc573fooEv");}
+cc57 ::~cc57(){ note_dtor("cc57", this);} // tgen
+
+static void Test_cc57()
+{
+ extern Class_Descriptor cd_cc57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc57, buf);
+ cc57 *dp, &lv = *(dp=new (buf) cc57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc57)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc57.c");
+ test_class_info(&lv, &cd_cc57);
+ dp->~cc57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc57(Test_cc57, "cc57", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc57C1Ev();
+extern void _ZN4cc57D1Ev();
+Name_Map name_map_cc57[] = {
+ NSPAIR(_ZN4cc57C1Ev),
+ NSPAIR(_ZN4cc57D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc57[];
+extern void _ZN4cc573fooEv();
+static VTBL_ENTRY vtc_cc57[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc57[0]),
+ (VTBL_ENTRY)&_ZN4cc573fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc57[];
+extern VTBL_ENTRY _ZTV4cc57[];
+Class_Descriptor cd_cc57 = { "cc57", // class name
+ 0,0,//no base classes
+ &(vtc_cc57[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc57),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc57),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd57 {
+ int d;
+ dd57(); // _ZN4dd57C1Ev
+ virtual void foo(); // _ZN4dd573fooEv
+ ~dd57(); // tgen
+};
+//SIG(-1 dd57) C1{ v1 Fi}
+
+
+ dd57 ::dd57(){ note_ctor("dd57", this);}
+void dd57 ::foo(){vfunc_called(this, "_ZN4dd573fooEv");}
+dd57 ::~dd57(){ note_dtor("dd57", this);} // tgen
+
+static void Test_dd57()
+{
+ extern Class_Descriptor cd_dd57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd57, buf);
+ dd57 *dp, &lv = *(dp=new (buf) dd57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd57)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd57.d");
+ test_class_info(&lv, &cd_dd57);
+ dp->~dd57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd57(Test_dd57, "dd57", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd57C1Ev();
+extern void _ZN4dd57D1Ev();
+Name_Map name_map_dd57[] = {
+ NSPAIR(_ZN4dd57C1Ev),
+ NSPAIR(_ZN4dd57D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd57[];
+extern void _ZN4dd573fooEv();
+static VTBL_ENTRY vtc_dd57[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd57[0]),
+ (VTBL_ENTRY)&_ZN4dd573fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd57[];
+extern VTBL_ENTRY _ZTV4dd57[];
+Class_Descriptor cd_dd57 = { "dd57", // class name
+ 0,0,//no base classes
+ &(vtc_dd57[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd57),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd57),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57 : virtual aa57 , bb57 {
+ int e;
+ ee57(const ABISELECT(__tsi64,int) *const *); // _ZN4ee57C2Ev
+ virtual void foo(); // _ZN4ee573fooEv
+ ~ee57(); // tgen
+ ee57(); // tgen
+};
+//SIG(-1 ee57) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee57 ::ee57(const ABISELECT(__tsi64,int) *const *){}
+void ee57 ::foo(){vfunc_called(this, "_ZN4ee573fooEv");}
+ee57 ::~ee57(){ note_dtor("ee57", this);} // tgen
+ee57 ::ee57(){ note_ctor("ee57", this);} // tgen
+
+static void Test_ee57()
+{
+ extern Class_Descriptor cd_ee57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee57, buf);
+ ee57 *dp, &lv = *(dp=new (buf) ee57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57)");
+ check_base_class_offset(lv, (aa57*), ABISELECT(16,12), "ee57");
+ check_base_class_offset(lv, (bb57*), 0, "ee57");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee57.e");
+ test_class_info(&lv, &cd_ee57);
+ dp->~ee57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57(Test_ee57, "ee57", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee57C1Ev();
+extern void _ZN4ee57D1Ev();
+Name_Map name_map_ee57[] = {
+ NSPAIR(_ZN4ee57C1Ev),
+ NSPAIR(_ZN4ee57D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa57;
+extern VTBL_ENTRY _ZTI4aa57[];
+extern VTBL_ENTRY _ZTV4aa57[];
+extern Class_Descriptor cd_bb57;
+extern VTBL_ENTRY _ZTI4bb57[];
+extern VTBL_ENTRY _ZTV4bb57[];
+static Base_Class bases_ee57[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa57, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb57, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee57[];
+extern void _ZN4ee573fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee573fooEv,_ZTv0_n12_N4ee573fooEv)();
+extern void ABISELECT(_ZThn16_N4ee573fooEv,_ZThn12_N4ee573fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee57[0]),
+ (VTBL_ENTRY)&_ZN4ee573fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee573fooEv,_ZTv0_n12_N4ee573fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee57[];
+static VTT_ENTRY vtt_ee57[] = {
+ {&(_ZTV4ee57[3]), 3,8},
+ {&(_ZTV4ee57[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee57[];
+extern VTBL_ENTRY _ZTV4ee57[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee57[];
+static VTBL_ENTRY alt_thunk_names140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee573fooEv,_ZTv0_n12_N4ee573fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee573fooEv,_ZThn12_N4ee573fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57 = { "ee57", // class name
+ bases_ee57, 2,
+ &(vtc_ee57[0]), // expected_vtbl_contents
+ &(vtt_ee57[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee57),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee57),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee57),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff57 : cc57 , virtual dd57 {
+ int f;
+ ff57(const ABISELECT(__tsi64,int) *const *); // _ZN4ff57C2Ev
+ virtual void foo(); // _ZN4ff573fooEv
+ ~ff57(); // tgen
+ ff57(); // tgen
+};
+//SIG(-1 ff57) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff57 ::ff57(const ABISELECT(__tsi64,int) *const *){}
+void ff57 ::foo(){vfunc_called(this, "_ZN4ff573fooEv");}
+ff57 ::~ff57(){ note_dtor("ff57", this);} // tgen
+ff57 ::ff57(){ note_ctor("ff57", this);} // tgen
+
+static void Test_ff57()
+{
+ extern Class_Descriptor cd_ff57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff57, buf);
+ ff57 *dp, &lv = *(dp=new (buf) ff57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff57)");
+ check_base_class_offset(lv, (cc57*), 0, "ff57");
+ check_base_class_offset(lv, (dd57*), ABISELECT(16,12), "ff57");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff57.f");
+ test_class_info(&lv, &cd_ff57);
+ dp->~ff57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff57(Test_ff57, "ff57", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff57C1Ev();
+extern void _ZN4ff57D1Ev();
+Name_Map name_map_ff57[] = {
+ NSPAIR(_ZN4ff57C1Ev),
+ NSPAIR(_ZN4ff57D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc57;
+extern VTBL_ENTRY _ZTI4cc57[];
+extern VTBL_ENTRY _ZTV4cc57[];
+extern Class_Descriptor cd_dd57;
+extern VTBL_ENTRY _ZTI4dd57[];
+extern VTBL_ENTRY _ZTV4dd57[];
+static Base_Class bases_ff57[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc57, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd57, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff57[];
+extern void _ZN4ff573fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff573fooEv,_ZTv0_n12_N4ff573fooEv)();
+extern void ABISELECT(_ZThn16_N4ff573fooEv,_ZThn12_N4ff573fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff57[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff57[0]),
+ (VTBL_ENTRY)&_ZN4ff573fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff573fooEv,_ZTv0_n12_N4ff573fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff57[];
+static VTT_ENTRY vtt_ff57[] = {
+ {&(_ZTV4ff57[3]), 3,8},
+ {&(_ZTV4ff57[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff57[];
+extern VTBL_ENTRY _ZTV4ff57[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff57[];
+static VTBL_ENTRY alt_thunk_names141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff573fooEv,_ZTv0_n12_N4ff573fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff573fooEv,_ZThn12_N4ff573fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff57 = { "ff57", // class name
+ bases_ff57, 2,
+ &(vtc_ff57[0]), // expected_vtbl_contents
+ &(vtt_ff57[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff57),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff57),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff57),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names141,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg57 : virtual ee57 , virtual ff57 {
+ int g;
+ gg57(const ABISELECT(__tsi64,int) *const *); // _ZN4gg57C2Ev
+ virtual void foo(); // _ZN4gg573fooEv
+ ~gg57(); // tgen
+ gg57(); // tgen
+};
+//SIG(1 gg57) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg57 ::gg57(const ABISELECT(__tsi64,int) *const *){}
+void gg57 ::foo(){vfunc_called(this, "_ZN4gg573fooEv");}
+gg57 ::~gg57(){ note_dtor("gg57", this);} // tgen
+gg57 ::gg57(){ note_ctor("gg57", this);} // tgen
+
+static void Test_gg57()
+{
+ extern Class_Descriptor cd_gg57;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg57, buf);
+ gg57 *dp, &lv = *(dp=new (buf) gg57());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg57)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg57)");
+ check_base_class_offset(lv, (aa57*)(ee57*), ABISELECT(32,20), "gg57");
+ check_base_class_offset(lv, (bb57*)(ee57*), ABISELECT(16,8), "gg57");
+ check_base_class_offset(lv, (ee57*), ABISELECT(16,8), "gg57");
+ check_base_class_offset(lv, (cc57*)(ff57*), ABISELECT(48,28), "gg57");
+ check_base_class_offset(lv, (dd57*)(ff57*), ABISELECT(64,40), "gg57");
+ check_base_class_offset(lv, (ff57*), ABISELECT(48,28), "gg57");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg57.g");
+ test_class_info(&lv, &cd_gg57);
+ dp->~gg57();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg57(Test_gg57, "gg57", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg57C1Ev();
+extern void _ZN4gg57D1Ev();
+Name_Map name_map_gg57[] = {
+ NSPAIR(_ZN4gg57C1Ev),
+ NSPAIR(_ZN4gg57D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa57;
+extern VTBL_ENTRY _ZTI4aa57[];
+extern VTBL_ENTRY _ZTV4aa57[];
+extern Class_Descriptor cd_bb57;
+extern VTBL_ENTRY _ZTI4bb57[];
+extern VTBL_ENTRY _ZTV4bb57[];
+extern Class_Descriptor cd_ee57;
+extern VTBL_ENTRY _ZTI4ee57[];
+extern VTBL_ENTRY _ZTV4ee57[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee57[];
+extern Class_Descriptor cd_cc57;
+extern VTBL_ENTRY _ZTI4cc57[];
+extern VTBL_ENTRY _ZTV4cc57[];
+extern Class_Descriptor cd_dd57;
+extern VTBL_ENTRY _ZTI4dd57[];
+extern VTBL_ENTRY _ZTV4dd57[];
+extern Class_Descriptor cd_ff57;
+extern VTBL_ENTRY _ZTI4ff57[];
+extern VTBL_ENTRY _ZTV4ff57[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff57[];
+static Base_Class bases_gg57[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa57, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb57, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee57, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc57, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd57, ABISELECT(64,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff57, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg57[];
+extern void _ZN4gg573fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg573fooEv,_ZTv0_n16_N4gg573fooEv)();
+extern void ABISELECT(_ZThn16_N4gg573fooEv,_ZThn8_N4gg573fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg573fooEv,_ZTv0_n12_N4gg573fooEv)();
+extern void ABISELECT(_ZThn32_N4gg573fooEv,_ZThn20_N4gg573fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg573fooEv,_ZTv0_n16_N4gg573fooEv)();
+extern void ABISELECT(_ZThn48_N4gg573fooEv,_ZThn28_N4gg573fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg573fooEv,_ZTv0_n12_N4gg573fooEv)();
+extern void ABISELECT(_ZThn64_N4gg573fooEv,_ZThn40_N4gg573fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg57[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg57[0]),
+ (VTBL_ENTRY)&_ZN4gg573fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg573fooEv,_ZTv0_n16_N4gg573fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg573fooEv,_ZTv0_n12_N4gg573fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg573fooEv,_ZTv0_n16_N4gg573fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg573fooEv,_ZTv0_n12_N4gg573fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg57[];
+extern void _ZN4ee573fooEv();
+static VTBL_ENTRY _tg__ZTV4ee57__4gg57[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee57[0]),
+ (VTBL_ENTRY)&_ZN4ee573fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee573fooEv,_ZTv0_n12_N4ee573fooEv)();
+extern void ABISELECT(_ZThn16_N4ee573fooEv,_ZThn12_N4ee573fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa57__4ee57__4gg57[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee573fooEv,_ZTv0_n12_N4ee573fooEv),
+};
+extern void _ZN4ff573fooEv();
+static VTBL_ENTRY _tg__ZTV4ff57__4gg57[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff57[0]),
+ (VTBL_ENTRY)&_ZN4ff573fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff573fooEv,_ZTv0_n12_N4ff573fooEv)();
+extern void ABISELECT(_ZThn16_N4ff573fooEv,_ZThn12_N4ff573fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd57__4ff57__4gg57[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff57[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff573fooEv,_ZTv0_n12_N4ff573fooEv),
+};
+static VTT_ENTRY vtt_gg57[] = {
+ {&(_ZTV4gg57[6]), 6,25},
+ {&(_ZTV4gg57[11]), 11,25},
+ {&(_ZTV4gg57[15]), 15,25},
+ {&(_ZTV4gg57[20]), 20,25},
+ {&(_ZTV4gg57[24]), 24,25},
+ {&(_tg__ZTV4ee57__4gg57[3]), 3,4},
+ {&(_tg__ZTV4aa57__4ee57__4gg57[3]), 3,4},
+ {&(_tg__ZTV4ff57__4gg57[3]), 3,4},
+ {&(_tg__ZTV4dd57__4ff57__4gg57[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg57[];
+extern VTBL_ENTRY _ZTV4gg57[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg57[];
+static VTBL_ENTRY alt_thunk_names142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff573fooEv,_ZTv0_n12_N4ff573fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff573fooEv,_ZThn12_N4ff573fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee573fooEv,_ZTv0_n12_N4ee573fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee573fooEv,_ZThn12_N4ee573fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg573fooEv,_ZTv0_n12_N4gg573fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg573fooEv,_ZThn40_N4gg573fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg573fooEv,_ZThn20_N4gg573fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg573fooEv,_ZTv0_n16_N4gg573fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg573fooEv,_ZThn28_N4gg573fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg573fooEv,_ZThn8_N4gg573fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg57 = { "gg57", // class name
+ bases_gg57, 6,
+ &(vtc_gg57[0]), // expected_vtbl_contents
+ &(vtt_gg57[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg57),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg57),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg57),9, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa58 {
+ int a;
+ aa58(); // _ZN4aa58C1Ev
+ virtual void foo(); // _ZN4aa583fooEv
+ ~aa58(); // tgen
+};
+//SIG(-1 aa58) C1{ v1 Fi}
+
+
+ aa58 ::aa58(){ note_ctor("aa58", this);}
+void aa58 ::foo(){vfunc_called(this, "_ZN4aa583fooEv");}
+aa58 ::~aa58(){ note_dtor("aa58", this);} // tgen
+
+static void Test_aa58()
+{
+ extern Class_Descriptor cd_aa58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa58, buf);
+ aa58 *dp, &lv = *(dp=new (buf) aa58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa58)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa58.a");
+ test_class_info(&lv, &cd_aa58);
+ dp->~aa58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa58(Test_aa58, "aa58", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa58C1Ev();
+extern void _ZN4aa58D1Ev();
+Name_Map name_map_aa58[] = {
+ NSPAIR(_ZN4aa58C1Ev),
+ NSPAIR(_ZN4aa58D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa58[];
+extern void _ZN4aa583fooEv();
+static VTBL_ENTRY vtc_aa58[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa58[0]),
+ (VTBL_ENTRY)&_ZN4aa583fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa58[];
+extern VTBL_ENTRY _ZTV4aa58[];
+Class_Descriptor cd_aa58 = { "aa58", // class name
+ 0,0,//no base classes
+ &(vtc_aa58[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa58),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa58),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb58 {
+ int b;
+ bb58(); // _ZN4bb58C1Ev
+ virtual void foo(); // _ZN4bb583fooEv
+ ~bb58(); // tgen
+};
+//SIG(-1 bb58) C1{ v1 Fi}
+
+
+ bb58 ::bb58(){ note_ctor("bb58", this);}
+void bb58 ::foo(){vfunc_called(this, "_ZN4bb583fooEv");}
+bb58 ::~bb58(){ note_dtor("bb58", this);} // tgen
+
+static void Test_bb58()
+{
+ extern Class_Descriptor cd_bb58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb58, buf);
+ bb58 *dp, &lv = *(dp=new (buf) bb58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb58)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb58.b");
+ test_class_info(&lv, &cd_bb58);
+ dp->~bb58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb58(Test_bb58, "bb58", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb58C1Ev();
+extern void _ZN4bb58D1Ev();
+Name_Map name_map_bb58[] = {
+ NSPAIR(_ZN4bb58C1Ev),
+ NSPAIR(_ZN4bb58D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb58[];
+extern void _ZN4bb583fooEv();
+static VTBL_ENTRY vtc_bb58[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb58[0]),
+ (VTBL_ENTRY)&_ZN4bb583fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb58[];
+extern VTBL_ENTRY _ZTV4bb58[];
+Class_Descriptor cd_bb58 = { "bb58", // class name
+ 0,0,//no base classes
+ &(vtc_bb58[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb58),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb58),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc58 {
+ int c;
+ cc58(); // _ZN4cc58C1Ev
+ virtual void foo(); // _ZN4cc583fooEv
+ ~cc58(); // tgen
+};
+//SIG(-1 cc58) C1{ v1 Fi}
+
+
+ cc58 ::cc58(){ note_ctor("cc58", this);}
+void cc58 ::foo(){vfunc_called(this, "_ZN4cc583fooEv");}
+cc58 ::~cc58(){ note_dtor("cc58", this);} // tgen
+
+static void Test_cc58()
+{
+ extern Class_Descriptor cd_cc58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc58, buf);
+ cc58 *dp, &lv = *(dp=new (buf) cc58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc58)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc58.c");
+ test_class_info(&lv, &cd_cc58);
+ dp->~cc58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc58(Test_cc58, "cc58", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc58C1Ev();
+extern void _ZN4cc58D1Ev();
+Name_Map name_map_cc58[] = {
+ NSPAIR(_ZN4cc58C1Ev),
+ NSPAIR(_ZN4cc58D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc58[];
+extern void _ZN4cc583fooEv();
+static VTBL_ENTRY vtc_cc58[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc58[0]),
+ (VTBL_ENTRY)&_ZN4cc583fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc58[];
+extern VTBL_ENTRY _ZTV4cc58[];
+Class_Descriptor cd_cc58 = { "cc58", // class name
+ 0,0,//no base classes
+ &(vtc_cc58[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc58),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc58),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd58 {
+ int d;
+ dd58(); // _ZN4dd58C1Ev
+ virtual void foo(); // _ZN4dd583fooEv
+ ~dd58(); // tgen
+};
+//SIG(-1 dd58) C1{ v1 Fi}
+
+
+ dd58 ::dd58(){ note_ctor("dd58", this);}
+void dd58 ::foo(){vfunc_called(this, "_ZN4dd583fooEv");}
+dd58 ::~dd58(){ note_dtor("dd58", this);} // tgen
+
+static void Test_dd58()
+{
+ extern Class_Descriptor cd_dd58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd58, buf);
+ dd58 *dp, &lv = *(dp=new (buf) dd58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd58)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd58.d");
+ test_class_info(&lv, &cd_dd58);
+ dp->~dd58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd58(Test_dd58, "dd58", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd58C1Ev();
+extern void _ZN4dd58D1Ev();
+Name_Map name_map_dd58[] = {
+ NSPAIR(_ZN4dd58C1Ev),
+ NSPAIR(_ZN4dd58D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd58[];
+extern void _ZN4dd583fooEv();
+static VTBL_ENTRY vtc_dd58[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd58[0]),
+ (VTBL_ENTRY)&_ZN4dd583fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd58[];
+extern VTBL_ENTRY _ZTV4dd58[];
+Class_Descriptor cd_dd58 = { "dd58", // class name
+ 0,0,//no base classes
+ &(vtc_dd58[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd58),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd58),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee58 : aa58 , virtual bb58 {
+ int e;
+ ee58(const ABISELECT(__tsi64,int) *const *); // _ZN4ee58C2Ev
+ virtual void foo(); // _ZN4ee583fooEv
+ ~ee58(); // tgen
+ ee58(); // tgen
+};
+//SIG(-1 ee58) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee58 ::ee58(const ABISELECT(__tsi64,int) *const *){}
+void ee58 ::foo(){vfunc_called(this, "_ZN4ee583fooEv");}
+ee58 ::~ee58(){ note_dtor("ee58", this);} // tgen
+ee58 ::ee58(){ note_ctor("ee58", this);} // tgen
+
+static void Test_ee58()
+{
+ extern Class_Descriptor cd_ee58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee58, buf);
+ ee58 *dp, &lv = *(dp=new (buf) ee58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee58)");
+ check_base_class_offset(lv, (aa58*), 0, "ee58");
+ check_base_class_offset(lv, (bb58*), ABISELECT(16,12), "ee58");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee58.e");
+ test_class_info(&lv, &cd_ee58);
+ dp->~ee58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee58(Test_ee58, "ee58", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee58C1Ev();
+extern void _ZN4ee58D1Ev();
+Name_Map name_map_ee58[] = {
+ NSPAIR(_ZN4ee58C1Ev),
+ NSPAIR(_ZN4ee58D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa58;
+extern VTBL_ENTRY _ZTI4aa58[];
+extern VTBL_ENTRY _ZTV4aa58[];
+extern Class_Descriptor cd_bb58;
+extern VTBL_ENTRY _ZTI4bb58[];
+extern VTBL_ENTRY _ZTV4bb58[];
+static Base_Class bases_ee58[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa58, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb58, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee58[];
+extern void _ZN4ee583fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee583fooEv,_ZTv0_n12_N4ee583fooEv)();
+extern void ABISELECT(_ZThn16_N4ee583fooEv,_ZThn12_N4ee583fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee58[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee58[0]),
+ (VTBL_ENTRY)&_ZN4ee583fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee583fooEv,_ZTv0_n12_N4ee583fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee58[];
+static VTT_ENTRY vtt_ee58[] = {
+ {&(_ZTV4ee58[3]), 3,8},
+ {&(_ZTV4ee58[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee58[];
+extern VTBL_ENTRY _ZTV4ee58[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee58[];
+static VTBL_ENTRY alt_thunk_names143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee583fooEv,_ZTv0_n12_N4ee583fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee583fooEv,_ZThn12_N4ee583fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee58 = { "ee58", // class name
+ bases_ee58, 2,
+ &(vtc_ee58[0]), // expected_vtbl_contents
+ &(vtt_ee58[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee58),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee58),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee58),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names143,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff58 : cc58 , virtual dd58 {
+ int f;
+ ff58(const ABISELECT(__tsi64,int) *const *); // _ZN4ff58C2Ev
+ virtual void foo(); // _ZN4ff583fooEv
+ ~ff58(); // tgen
+ ff58(); // tgen
+};
+//SIG(-1 ff58) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff58 ::ff58(const ABISELECT(__tsi64,int) *const *){}
+void ff58 ::foo(){vfunc_called(this, "_ZN4ff583fooEv");}
+ff58 ::~ff58(){ note_dtor("ff58", this);} // tgen
+ff58 ::ff58(){ note_ctor("ff58", this);} // tgen
+
+static void Test_ff58()
+{
+ extern Class_Descriptor cd_ff58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff58, buf);
+ ff58 *dp, &lv = *(dp=new (buf) ff58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff58)");
+ check_base_class_offset(lv, (cc58*), 0, "ff58");
+ check_base_class_offset(lv, (dd58*), ABISELECT(16,12), "ff58");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff58.f");
+ test_class_info(&lv, &cd_ff58);
+ dp->~ff58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff58(Test_ff58, "ff58", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff58C1Ev();
+extern void _ZN4ff58D1Ev();
+Name_Map name_map_ff58[] = {
+ NSPAIR(_ZN4ff58C1Ev),
+ NSPAIR(_ZN4ff58D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc58;
+extern VTBL_ENTRY _ZTI4cc58[];
+extern VTBL_ENTRY _ZTV4cc58[];
+extern Class_Descriptor cd_dd58;
+extern VTBL_ENTRY _ZTI4dd58[];
+extern VTBL_ENTRY _ZTV4dd58[];
+static Base_Class bases_ff58[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc58, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd58, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff58[];
+extern void _ZN4ff583fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff583fooEv,_ZTv0_n12_N4ff583fooEv)();
+extern void ABISELECT(_ZThn16_N4ff583fooEv,_ZThn12_N4ff583fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff58[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff58[0]),
+ (VTBL_ENTRY)&_ZN4ff583fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff583fooEv,_ZTv0_n12_N4ff583fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff58[];
+static VTT_ENTRY vtt_ff58[] = {
+ {&(_ZTV4ff58[3]), 3,8},
+ {&(_ZTV4ff58[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff58[];
+extern VTBL_ENTRY _ZTV4ff58[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff58[];
+static VTBL_ENTRY alt_thunk_names144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff583fooEv,_ZTv0_n12_N4ff583fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff583fooEv,_ZThn12_N4ff583fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff58 = { "ff58", // class name
+ bases_ff58, 2,
+ &(vtc_ff58[0]), // expected_vtbl_contents
+ &(vtt_ff58[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff58),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff58),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff58),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg58 : virtual ee58 , virtual ff58 {
+ int g;
+ gg58(const ABISELECT(__tsi64,int) *const *); // _ZN4gg58C2Ev
+ virtual void foo(); // _ZN4gg583fooEv
+ ~gg58(); // tgen
+ gg58(); // tgen
+};
+//SIG(1 gg58) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg58 ::gg58(const ABISELECT(__tsi64,int) *const *){}
+void gg58 ::foo(){vfunc_called(this, "_ZN4gg583fooEv");}
+gg58 ::~gg58(){ note_dtor("gg58", this);} // tgen
+gg58 ::gg58(){ note_ctor("gg58", this);} // tgen
+
+static void Test_gg58()
+{
+ extern Class_Descriptor cd_gg58;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(11,13)];
+ init_test(&cd_gg58, buf);
+ gg58 *dp, &lv = *(dp=new (buf) gg58());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,48), "sizeof(gg58)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg58)");
+ check_base_class_offset(lv, (aa58*)(ee58*), ABISELECT(16,8), "gg58");
+ check_base_class_offset(lv, (bb58*)(ee58*), ABISELECT(32,20), "gg58");
+ check_base_class_offset(lv, (ee58*), ABISELECT(16,8), "gg58");
+ check_base_class_offset(lv, (cc58*)(ff58*), ABISELECT(48,28), "gg58");
+ check_base_class_offset(lv, (dd58*)(ff58*), ABISELECT(64,40), "gg58");
+ check_base_class_offset(lv, (ff58*), ABISELECT(48,28), "gg58");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg58.g");
+ test_class_info(&lv, &cd_gg58);
+ dp->~gg58();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg58(Test_gg58, "gg58", ABISELECT(80,48));
+
+#else // __cplusplus
+
+extern void _ZN4gg58C1Ev();
+extern void _ZN4gg58D1Ev();
+Name_Map name_map_gg58[] = {
+ NSPAIR(_ZN4gg58C1Ev),
+ NSPAIR(_ZN4gg58D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa58;
+extern VTBL_ENTRY _ZTI4aa58[];
+extern VTBL_ENTRY _ZTV4aa58[];
+extern Class_Descriptor cd_bb58;
+extern VTBL_ENTRY _ZTI4bb58[];
+extern VTBL_ENTRY _ZTV4bb58[];
+extern Class_Descriptor cd_ee58;
+extern VTBL_ENTRY _ZTI4ee58[];
+extern VTBL_ENTRY _ZTV4ee58[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee58[];
+extern Class_Descriptor cd_cc58;
+extern VTBL_ENTRY _ZTI4cc58[];
+extern VTBL_ENTRY _ZTV4cc58[];
+extern Class_Descriptor cd_dd58;
+extern VTBL_ENTRY _ZTI4dd58[];
+extern VTBL_ENTRY _ZTV4dd58[];
+extern Class_Descriptor cd_ff58;
+extern VTBL_ENTRY _ZTI4ff58[];
+extern VTBL_ENTRY _ZTV4ff58[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff58[];
+static Base_Class bases_gg58[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa58, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb58, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee58, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc58, ABISELECT(48,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd58, ABISELECT(64,40), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff58, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg58[];
+extern void _ZN4gg583fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg583fooEv,_ZTv0_n16_N4gg583fooEv)();
+extern void ABISELECT(_ZThn16_N4gg583fooEv,_ZThn8_N4gg583fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg583fooEv,_ZTv0_n12_N4gg583fooEv)();
+extern void ABISELECT(_ZThn32_N4gg583fooEv,_ZThn20_N4gg583fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg583fooEv,_ZTv0_n16_N4gg583fooEv)();
+extern void ABISELECT(_ZThn48_N4gg583fooEv,_ZThn28_N4gg583fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg583fooEv,_ZTv0_n12_N4gg583fooEv)();
+extern void ABISELECT(_ZThn64_N4gg583fooEv,_ZThn40_N4gg583fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg58[] = {
+ ABISELECT(64,40),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg58[0]),
+ (VTBL_ENTRY)&_ZN4gg583fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg583fooEv,_ZTv0_n16_N4gg583fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg583fooEv,_ZTv0_n12_N4gg583fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(16,12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg583fooEv,_ZTv0_n16_N4gg583fooEv),
+ ABISELECT(-64,-40),
+ ABISELECT(-64,-40),
+ (VTBL_ENTRY)&(_ZTI4gg58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg583fooEv,_ZTv0_n12_N4gg583fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg58[];
+extern void _ZN4ee583fooEv();
+static VTBL_ENTRY _tg__ZTV4ee58__4gg58[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee58[0]),
+ (VTBL_ENTRY)&_ZN4ee583fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee583fooEv,_ZTv0_n12_N4ee583fooEv)();
+extern void ABISELECT(_ZThn16_N4ee583fooEv,_ZThn12_N4ee583fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb58__4ee58__4gg58[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee583fooEv,_ZTv0_n12_N4ee583fooEv),
+};
+extern void _ZN4ff583fooEv();
+static VTBL_ENTRY _tg__ZTV4ff58__4gg58[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff58[0]),
+ (VTBL_ENTRY)&_ZN4ff583fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff583fooEv,_ZTv0_n12_N4ff583fooEv)();
+extern void ABISELECT(_ZThn16_N4ff583fooEv,_ZThn12_N4ff583fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd58__4ff58__4gg58[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff58[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff583fooEv,_ZTv0_n12_N4ff583fooEv),
+};
+static VTT_ENTRY vtt_gg58[] = {
+ {&(_ZTV4gg58[6]), 6,25},
+ {&(_ZTV4gg58[11]), 11,25},
+ {&(_ZTV4gg58[15]), 15,25},
+ {&(_ZTV4gg58[20]), 20,25},
+ {&(_ZTV4gg58[24]), 24,25},
+ {&(_tg__ZTV4ee58__4gg58[3]), 3,4},
+ {&(_tg__ZTV4bb58__4ee58__4gg58[3]), 3,4},
+ {&(_tg__ZTV4ff58__4gg58[3]), 3,4},
+ {&(_tg__ZTV4dd58__4ff58__4gg58[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg58[];
+extern VTBL_ENTRY _ZTV4gg58[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg58[];
+static VTBL_ENTRY alt_thunk_names145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff583fooEv,_ZTv0_n12_N4ff583fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff583fooEv,_ZThn12_N4ff583fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee583fooEv,_ZTv0_n12_N4ee583fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee583fooEv,_ZThn12_N4ee583fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg583fooEv,_ZTv0_n12_N4gg583fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg583fooEv,_ZThn40_N4gg583fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg583fooEv,_ZThn20_N4gg583fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg583fooEv,_ZTv0_n16_N4gg583fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg583fooEv,_ZThn28_N4gg583fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg583fooEv,_ZThn8_N4gg583fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg58 = { "gg58", // class name
+ bases_gg58, 6,
+ &(vtc_gg58[0]), // expected_vtbl_contents
+ &(vtt_gg58[0]), // expected_vtt_contents
+ ABISELECT(80,48), // object size
+ NSPAIRA(_ZTI4gg58),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg58),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg58),9, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa59 {
+ int a;
+ aa59(); // _ZN4aa59C1Ev
+ virtual void foo(); // _ZN4aa593fooEv
+ ~aa59(); // tgen
+};
+//SIG(-1 aa59) C1{ v1 Fi}
+
+
+ aa59 ::aa59(){ note_ctor("aa59", this);}
+void aa59 ::foo(){vfunc_called(this, "_ZN4aa593fooEv");}
+aa59 ::~aa59(){ note_dtor("aa59", this);} // tgen
+
+static void Test_aa59()
+{
+ extern Class_Descriptor cd_aa59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa59, buf);
+ aa59 *dp, &lv = *(dp=new (buf) aa59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa59)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa59.a");
+ test_class_info(&lv, &cd_aa59);
+ dp->~aa59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa59(Test_aa59, "aa59", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa59C1Ev();
+extern void _ZN4aa59D1Ev();
+Name_Map name_map_aa59[] = {
+ NSPAIR(_ZN4aa59C1Ev),
+ NSPAIR(_ZN4aa59D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa59[];
+extern void _ZN4aa593fooEv();
+static VTBL_ENTRY vtc_aa59[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa59[0]),
+ (VTBL_ENTRY)&_ZN4aa593fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa59[];
+extern VTBL_ENTRY _ZTV4aa59[];
+Class_Descriptor cd_aa59 = { "aa59", // class name
+ 0,0,//no base classes
+ &(vtc_aa59[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa59),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa59),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb59 {
+ int b;
+ bb59(); // _ZN4bb59C1Ev
+ virtual void foo(); // _ZN4bb593fooEv
+ ~bb59(); // tgen
+};
+//SIG(-1 bb59) C1{ v1 Fi}
+
+
+ bb59 ::bb59(){ note_ctor("bb59", this);}
+void bb59 ::foo(){vfunc_called(this, "_ZN4bb593fooEv");}
+bb59 ::~bb59(){ note_dtor("bb59", this);} // tgen
+
+static void Test_bb59()
+{
+ extern Class_Descriptor cd_bb59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb59, buf);
+ bb59 *dp, &lv = *(dp=new (buf) bb59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb59)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb59.b");
+ test_class_info(&lv, &cd_bb59);
+ dp->~bb59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb59(Test_bb59, "bb59", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb59C1Ev();
+extern void _ZN4bb59D1Ev();
+Name_Map name_map_bb59[] = {
+ NSPAIR(_ZN4bb59C1Ev),
+ NSPAIR(_ZN4bb59D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb59[];
+extern void _ZN4bb593fooEv();
+static VTBL_ENTRY vtc_bb59[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb59[0]),
+ (VTBL_ENTRY)&_ZN4bb593fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb59[];
+extern VTBL_ENTRY _ZTV4bb59[];
+Class_Descriptor cd_bb59 = { "bb59", // class name
+ 0,0,//no base classes
+ &(vtc_bb59[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb59),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb59),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc59 {
+ int c;
+ cc59(); // _ZN4cc59C1Ev
+ virtual void foo(); // _ZN4cc593fooEv
+ ~cc59(); // tgen
+};
+//SIG(-1 cc59) C1{ v1 Fi}
+
+
+ cc59 ::cc59(){ note_ctor("cc59", this);}
+void cc59 ::foo(){vfunc_called(this, "_ZN4cc593fooEv");}
+cc59 ::~cc59(){ note_dtor("cc59", this);} // tgen
+
+static void Test_cc59()
+{
+ extern Class_Descriptor cd_cc59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc59, buf);
+ cc59 *dp, &lv = *(dp=new (buf) cc59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc59)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc59.c");
+ test_class_info(&lv, &cd_cc59);
+ dp->~cc59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc59(Test_cc59, "cc59", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc59C1Ev();
+extern void _ZN4cc59D1Ev();
+Name_Map name_map_cc59[] = {
+ NSPAIR(_ZN4cc59C1Ev),
+ NSPAIR(_ZN4cc59D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc59[];
+extern void _ZN4cc593fooEv();
+static VTBL_ENTRY vtc_cc59[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc59[0]),
+ (VTBL_ENTRY)&_ZN4cc593fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc59[];
+extern VTBL_ENTRY _ZTV4cc59[];
+Class_Descriptor cd_cc59 = { "cc59", // class name
+ 0,0,//no base classes
+ &(vtc_cc59[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc59),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc59),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd59 {
+ int d;
+ dd59(); // _ZN4dd59C1Ev
+ virtual void foo(); // _ZN4dd593fooEv
+ ~dd59(); // tgen
+};
+//SIG(-1 dd59) C1{ v1 Fi}
+
+
+ dd59 ::dd59(){ note_ctor("dd59", this);}
+void dd59 ::foo(){vfunc_called(this, "_ZN4dd593fooEv");}
+dd59 ::~dd59(){ note_dtor("dd59", this);} // tgen
+
+static void Test_dd59()
+{
+ extern Class_Descriptor cd_dd59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd59, buf);
+ dd59 *dp, &lv = *(dp=new (buf) dd59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd59)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd59.d");
+ test_class_info(&lv, &cd_dd59);
+ dp->~dd59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd59(Test_dd59, "dd59", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd59C1Ev();
+extern void _ZN4dd59D1Ev();
+Name_Map name_map_dd59[] = {
+ NSPAIR(_ZN4dd59C1Ev),
+ NSPAIR(_ZN4dd59D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd59[];
+extern void _ZN4dd593fooEv();
+static VTBL_ENTRY vtc_dd59[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd59[0]),
+ (VTBL_ENTRY)&_ZN4dd593fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd59[];
+extern VTBL_ENTRY _ZTV4dd59[];
+Class_Descriptor cd_dd59 = { "dd59", // class name
+ 0,0,//no base classes
+ &(vtc_dd59[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd59),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd59),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee59 : virtual aa59 , virtual bb59 {
+ int e;
+ ee59(const ABISELECT(__tsi64,int) *const *); // _ZN4ee59C2Ev
+ virtual void foo(); // _ZN4ee593fooEv
+ ~ee59(); // tgen
+ ee59(); // tgen
+};
+//SIG(-1 ee59) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee59 ::ee59(const ABISELECT(__tsi64,int) *const *){}
+void ee59 ::foo(){vfunc_called(this, "_ZN4ee593fooEv");}
+ee59 ::~ee59(){ note_dtor("ee59", this);} // tgen
+ee59 ::ee59(){ note_ctor("ee59", this);} // tgen
+
+static void Test_ee59()
+{
+ extern Class_Descriptor cd_ee59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee59, buf);
+ ee59 *dp, &lv = *(dp=new (buf) ee59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee59)");
+ check_base_class_offset(lv, (aa59*), ABISELECT(16,8), "ee59");
+ check_base_class_offset(lv, (bb59*), ABISELECT(32,16), "ee59");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee59.e");
+ test_class_info(&lv, &cd_ee59);
+ dp->~ee59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee59(Test_ee59, "ee59", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee59C1Ev();
+extern void _ZN4ee59D1Ev();
+Name_Map name_map_ee59[] = {
+ NSPAIR(_ZN4ee59C1Ev),
+ NSPAIR(_ZN4ee59D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa59;
+extern VTBL_ENTRY _ZTI4aa59[];
+extern VTBL_ENTRY _ZTV4aa59[];
+extern Class_Descriptor cd_bb59;
+extern VTBL_ENTRY _ZTI4bb59[];
+extern VTBL_ENTRY _ZTV4bb59[];
+static Base_Class bases_ee59[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa59, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb59, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee59[];
+extern void _ZN4ee593fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv)();
+extern void ABISELECT(_ZThn16_N4ee593fooEv,_ZThn8_N4ee593fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv)();
+extern void ABISELECT(_ZThn32_N4ee593fooEv,_ZThn16_N4ee593fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee59[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee59[0]),
+ (VTBL_ENTRY)&_ZN4ee593fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee59[];
+static VTT_ENTRY vtt_ee59[] = {
+ {&(_ZTV4ee59[4]), 4,13},
+ {&(_ZTV4ee59[8]), 8,13},
+ {&(_ZTV4ee59[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee59[];
+extern VTBL_ENTRY _ZTV4ee59[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee59[];
+static VTBL_ENTRY alt_thunk_names146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee593fooEv,_ZThn16_N4ee593fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee593fooEv,_ZThn8_N4ee593fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee59 = { "ee59", // class name
+ bases_ee59, 2,
+ &(vtc_ee59[0]), // expected_vtbl_contents
+ &(vtt_ee59[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee59),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee59),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee59),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff59 : cc59 , virtual dd59 {
+ int f;
+ ff59(const ABISELECT(__tsi64,int) *const *); // _ZN4ff59C2Ev
+ virtual void foo(); // _ZN4ff593fooEv
+ ~ff59(); // tgen
+ ff59(); // tgen
+};
+//SIG(-1 ff59) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff59 ::ff59(const ABISELECT(__tsi64,int) *const *){}
+void ff59 ::foo(){vfunc_called(this, "_ZN4ff593fooEv");}
+ff59 ::~ff59(){ note_dtor("ff59", this);} // tgen
+ff59 ::ff59(){ note_ctor("ff59", this);} // tgen
+
+static void Test_ff59()
+{
+ extern Class_Descriptor cd_ff59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ff59, buf);
+ ff59 *dp, &lv = *(dp=new (buf) ff59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ff59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff59)");
+ check_base_class_offset(lv, (cc59*), 0, "ff59");
+ check_base_class_offset(lv, (dd59*), ABISELECT(16,12), "ff59");
+ check_field_offset(lv, f, ABISELECT(12,8), "ff59.f");
+ test_class_info(&lv, &cd_ff59);
+ dp->~ff59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff59(Test_ff59, "ff59", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ff59C1Ev();
+extern void _ZN4ff59D1Ev();
+Name_Map name_map_ff59[] = {
+ NSPAIR(_ZN4ff59C1Ev),
+ NSPAIR(_ZN4ff59D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc59;
+extern VTBL_ENTRY _ZTI4cc59[];
+extern VTBL_ENTRY _ZTV4cc59[];
+extern Class_Descriptor cd_dd59;
+extern VTBL_ENTRY _ZTI4dd59[];
+extern VTBL_ENTRY _ZTV4dd59[];
+static Base_Class bases_ff59[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc59, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_dd59, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff59[];
+extern void _ZN4ff593fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff593fooEv,_ZTv0_n12_N4ff593fooEv)();
+extern void ABISELECT(_ZThn16_N4ff593fooEv,_ZThn12_N4ff593fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff59[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff59[0]),
+ (VTBL_ENTRY)&_ZN4ff593fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff593fooEv,_ZTv0_n12_N4ff593fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff59[];
+static VTT_ENTRY vtt_ff59[] = {
+ {&(_ZTV4ff59[3]), 3,8},
+ {&(_ZTV4ff59[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ff59[];
+extern VTBL_ENTRY _ZTV4ff59[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff59[];
+static VTBL_ENTRY alt_thunk_names147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff593fooEv,_ZTv0_n12_N4ff593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff593fooEv,_ZThn12_N4ff593fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff59 = { "ff59", // class name
+ bases_ff59, 2,
+ &(vtc_ff59[0]), // expected_vtbl_contents
+ &(vtt_ff59[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ff59),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff59),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff59),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg59 : virtual ee59 , virtual ff59 {
+ int g;
+ gg59(const ABISELECT(__tsi64,int) *const *); // _ZN4gg59C2Ev
+ virtual void foo(); // _ZN4gg593fooEv
+ ~gg59(); // tgen
+ gg59(); // tgen
+};
+//SIG(1 gg59) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ BC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg59 ::gg59(const ABISELECT(__tsi64,int) *const *){}
+void gg59 ::foo(){vfunc_called(this, "_ZN4gg593fooEv");}
+gg59 ::~gg59(){ note_dtor("gg59", this);} // tgen
+gg59 ::gg59(){ note_ctor("gg59", this);} // tgen
+
+static void Test_gg59()
+{
+ extern Class_Descriptor cd_gg59;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg59, buf);
+ gg59 *dp, &lv = *(dp=new (buf) gg59());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg59)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg59)");
+ check_base_class_offset(lv, (aa59*)(ee59*), ABISELECT(32,16), "gg59");
+ check_base_class_offset(lv, (bb59*)(ee59*), ABISELECT(48,24), "gg59");
+ check_base_class_offset(lv, (ee59*), ABISELECT(16,8), "gg59");
+ check_base_class_offset(lv, (cc59*)(ff59*), ABISELECT(64,32), "gg59");
+ check_base_class_offset(lv, (dd59*)(ff59*), ABISELECT(80,44), "gg59");
+ check_base_class_offset(lv, (ff59*), ABISELECT(64,32), "gg59");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg59.g");
+ test_class_info(&lv, &cd_gg59);
+ dp->~gg59();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg59(Test_gg59, "gg59", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg59C1Ev();
+extern void _ZN4gg59D1Ev();
+Name_Map name_map_gg59[] = {
+ NSPAIR(_ZN4gg59C1Ev),
+ NSPAIR(_ZN4gg59D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa59;
+extern VTBL_ENTRY _ZTI4aa59[];
+extern VTBL_ENTRY _ZTV4aa59[];
+extern Class_Descriptor cd_bb59;
+extern VTBL_ENTRY _ZTI4bb59[];
+extern VTBL_ENTRY _ZTV4bb59[];
+extern Class_Descriptor cd_ee59;
+extern VTBL_ENTRY _ZTI4ee59[];
+extern VTBL_ENTRY _ZTV4ee59[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee59[];
+extern Class_Descriptor cd_cc59;
+extern VTBL_ENTRY _ZTI4cc59[];
+extern VTBL_ENTRY _ZTV4cc59[];
+extern Class_Descriptor cd_dd59;
+extern VTBL_ENTRY _ZTI4dd59[];
+extern VTBL_ENTRY _ZTV4dd59[];
+extern Class_Descriptor cd_ff59;
+extern VTBL_ENTRY _ZTI4ff59[];
+extern VTBL_ENTRY _ZTV4ff59[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff59[];
+static Base_Class bases_gg59[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa59, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb59, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee59, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc59, ABISELECT(64,32), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 0},
+ {&cd_dd59, ABISELECT(80,44), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff59, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg59[];
+extern void _ZN4gg593fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg593fooEv,_ZTv0_n20_N4gg593fooEv)();
+extern void ABISELECT(_ZThn16_N4gg593fooEv,_ZThn8_N4gg593fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv)();
+extern void ABISELECT(_ZThn32_N4gg593fooEv,_ZThn16_N4gg593fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv)();
+extern void ABISELECT(_ZThn48_N4gg593fooEv,_ZThn24_N4gg593fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4gg593fooEv,_ZTv0_n16_N4gg593fooEv)();
+extern void ABISELECT(_ZThn64_N4gg593fooEv,_ZThn32_N4gg593fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv)();
+extern void ABISELECT(_ZThn80_N4gg593fooEv,_ZThn44_N4gg593fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg59[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg59[0]),
+ (VTBL_ENTRY)&_ZN4gg593fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg593fooEv,_ZTv0_n20_N4gg593fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI4gg59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,12),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI4gg59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg593fooEv,_ZTv0_n16_N4gg593fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg59[];
+extern void _ZN4ee593fooEv();
+static VTBL_ENTRY _tg__ZTV4ee59__4gg59[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee59[0]),
+ (VTBL_ENTRY)&_ZN4ee593fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv)();
+extern void ABISELECT(_ZThn16_N4ee593fooEv,_ZThn8_N4ee593fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa59__4ee59__4gg59[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv)();
+extern void ABISELECT(_ZThn32_N4ee593fooEv,_ZThn16_N4ee593fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb59__4ee59__4gg59[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv),
+};
+extern void _ZN4ff593fooEv();
+static VTBL_ENTRY _tg__ZTV4ff59__4gg59[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff59[0]),
+ (VTBL_ENTRY)&_ZN4ff593fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff593fooEv,_ZTv0_n12_N4ff593fooEv)();
+extern void ABISELECT(_ZThn16_N4ff593fooEv,_ZThn12_N4ff593fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd59__4ff59__4gg59[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ff59[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff593fooEv,_ZTv0_n12_N4ff593fooEv),
+};
+static VTT_ENTRY vtt_gg59[] = {
+ {&(_ZTV4gg59[7]), 7,31},
+ {&(_ZTV4gg59[13]), 13,31},
+ {&(_ZTV4gg59[17]), 17,31},
+ {&(_ZTV4gg59[21]), 21,31},
+ {&(_ZTV4gg59[26]), 26,31},
+ {&(_ZTV4gg59[30]), 30,31},
+ {&(_tg__ZTV4ee59__4gg59[4]), 4,5},
+ {&(_tg__ZTV4aa59__4ee59__4gg59[3]), 3,4},
+ {&(_tg__ZTV4bb59__4ee59__4gg59[3]), 3,4},
+ {&(_tg__ZTV4ff59__4gg59[3]), 3,4},
+ {&(_tg__ZTV4dd59__4ff59__4gg59[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg59[];
+extern VTBL_ENTRY _ZTV4gg59[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg59[];
+static VTBL_ENTRY alt_thunk_names148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff593fooEv,_ZTv0_n12_N4ff593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff593fooEv,_ZThn12_N4ff593fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee593fooEv,_ZTv0_n12_N4ee593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee593fooEv,_ZThn16_N4ee593fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee593fooEv,_ZThn8_N4ee593fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg593fooEv,_ZTv0_n16_N4gg593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg593fooEv,_ZThn32_N4gg593fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg593fooEv,_ZTv0_n12_N4gg593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg593fooEv,_ZThn44_N4gg593fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg593fooEv,_ZThn24_N4gg593fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg593fooEv,_ZThn16_N4gg593fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg593fooEv,_ZTv0_n20_N4gg593fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg593fooEv,_ZThn8_N4gg593fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg59 = { "gg59", // class name
+ bases_gg59, 6,
+ &(vtc_gg59[0]), // expected_vtbl_contents
+ &(vtt_gg59[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg59),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg59),31, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg59),11, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa60 {
+ int a;
+ aa60(); // _ZN4aa60C1Ev
+ virtual void foo(); // _ZN4aa603fooEv
+ ~aa60(); // tgen
+};
+//SIG(-1 aa60) C1{ v1 Fi}
+
+
+ aa60 ::aa60(){ note_ctor("aa60", this);}
+void aa60 ::foo(){vfunc_called(this, "_ZN4aa603fooEv");}
+aa60 ::~aa60(){ note_dtor("aa60", this);} // tgen
+
+static void Test_aa60()
+{
+ extern Class_Descriptor cd_aa60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa60, buf);
+ aa60 *dp, &lv = *(dp=new (buf) aa60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa60)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa60.a");
+ test_class_info(&lv, &cd_aa60);
+ dp->~aa60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa60(Test_aa60, "aa60", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa60C1Ev();
+extern void _ZN4aa60D1Ev();
+Name_Map name_map_aa60[] = {
+ NSPAIR(_ZN4aa60C1Ev),
+ NSPAIR(_ZN4aa60D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa60[];
+extern void _ZN4aa603fooEv();
+static VTBL_ENTRY vtc_aa60[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa60[0]),
+ (VTBL_ENTRY)&_ZN4aa603fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa60[];
+extern VTBL_ENTRY _ZTV4aa60[];
+Class_Descriptor cd_aa60 = { "aa60", // class name
+ 0,0,//no base classes
+ &(vtc_aa60[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa60),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa60),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb60 {
+ int b;
+ bb60(); // _ZN4bb60C1Ev
+ virtual void foo(); // _ZN4bb603fooEv
+ ~bb60(); // tgen
+};
+//SIG(-1 bb60) C1{ v1 Fi}
+
+
+ bb60 ::bb60(){ note_ctor("bb60", this);}
+void bb60 ::foo(){vfunc_called(this, "_ZN4bb603fooEv");}
+bb60 ::~bb60(){ note_dtor("bb60", this);} // tgen
+
+static void Test_bb60()
+{
+ extern Class_Descriptor cd_bb60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb60, buf);
+ bb60 *dp, &lv = *(dp=new (buf) bb60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb60)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb60.b");
+ test_class_info(&lv, &cd_bb60);
+ dp->~bb60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb60(Test_bb60, "bb60", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb60C1Ev();
+extern void _ZN4bb60D1Ev();
+Name_Map name_map_bb60[] = {
+ NSPAIR(_ZN4bb60C1Ev),
+ NSPAIR(_ZN4bb60D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb60[];
+extern void _ZN4bb603fooEv();
+static VTBL_ENTRY vtc_bb60[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb60[0]),
+ (VTBL_ENTRY)&_ZN4bb603fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+Class_Descriptor cd_bb60 = { "bb60", // class name
+ 0,0,//no base classes
+ &(vtc_bb60[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb60),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb60),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc60 {
+ int c;
+ cc60(); // _ZN4cc60C1Ev
+ virtual void foo(); // _ZN4cc603fooEv
+ ~cc60(); // tgen
+};
+//SIG(-1 cc60) C1{ v1 Fi}
+
+
+ cc60 ::cc60(){ note_ctor("cc60", this);}
+void cc60 ::foo(){vfunc_called(this, "_ZN4cc603fooEv");}
+cc60 ::~cc60(){ note_dtor("cc60", this);} // tgen
+
+static void Test_cc60()
+{
+ extern Class_Descriptor cd_cc60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc60, buf);
+ cc60 *dp, &lv = *(dp=new (buf) cc60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc60)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc60.c");
+ test_class_info(&lv, &cd_cc60);
+ dp->~cc60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc60(Test_cc60, "cc60", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc60C1Ev();
+extern void _ZN4cc60D1Ev();
+Name_Map name_map_cc60[] = {
+ NSPAIR(_ZN4cc60C1Ev),
+ NSPAIR(_ZN4cc60D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc60[];
+extern void _ZN4cc603fooEv();
+static VTBL_ENTRY vtc_cc60[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc60[0]),
+ (VTBL_ENTRY)&_ZN4cc603fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc60[];
+extern VTBL_ENTRY _ZTV4cc60[];
+Class_Descriptor cd_cc60 = { "cc60", // class name
+ 0,0,//no base classes
+ &(vtc_cc60[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc60),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc60),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd60 {
+ int d;
+ dd60(); // _ZN4dd60C1Ev
+ virtual void foo(); // _ZN4dd603fooEv
+ ~dd60(); // tgen
+};
+//SIG(-1 dd60) C1{ v1 Fi}
+
+
+ dd60 ::dd60(){ note_ctor("dd60", this);}
+void dd60 ::foo(){vfunc_called(this, "_ZN4dd603fooEv");}
+dd60 ::~dd60(){ note_dtor("dd60", this);} // tgen
+
+static void Test_dd60()
+{
+ extern Class_Descriptor cd_dd60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd60, buf);
+ dd60 *dp, &lv = *(dp=new (buf) dd60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd60)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd60.d");
+ test_class_info(&lv, &cd_dd60);
+ dp->~dd60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd60(Test_dd60, "dd60", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd60C1Ev();
+extern void _ZN4dd60D1Ev();
+Name_Map name_map_dd60[] = {
+ NSPAIR(_ZN4dd60C1Ev),
+ NSPAIR(_ZN4dd60D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd60[];
+extern void _ZN4dd603fooEv();
+static VTBL_ENTRY vtc_dd60[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd60[0]),
+ (VTBL_ENTRY)&_ZN4dd603fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd60[];
+extern VTBL_ENTRY _ZTV4dd60[];
+Class_Descriptor cd_dd60 = { "dd60", // class name
+ 0,0,//no base classes
+ &(vtc_dd60[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd60),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd60),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60 : aa60 , bb60 {
+ int e;
+ ee60(); // _ZN4ee60C1Ev
+ virtual void foo(); // _ZN4ee603fooEv
+ ~ee60(); // tgen
+};
+//SIG(-1 ee60) C1{ BC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee60 ::ee60(){ note_ctor("ee60", this);}
+void ee60 ::foo(){vfunc_called(this, "_ZN4ee603fooEv");}
+ee60 ::~ee60(){ note_dtor("ee60", this);} // tgen
+
+static void Test_ee60()
+{
+ extern Class_Descriptor cd_ee60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee60, buf);
+ ee60 *dp, &lv = *(dp=new (buf) ee60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60)");
+ check_base_class_offset(lv, (aa60*), 0, "ee60");
+ check_base_class_offset(lv, (bb60*), ABISELECT(16,8), "ee60");
+ check_field_offset(lv, e, ABISELECT(28,16), "ee60.e");
+ test_class_info(&lv, &cd_ee60);
+ dp->~ee60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60(Test_ee60, "ee60", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee60C1Ev();
+extern void _ZN4ee60D1Ev();
+Name_Map name_map_ee60[] = {
+ NSPAIR(_ZN4ee60C1Ev),
+ NSPAIR(_ZN4ee60D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa60;
+extern VTBL_ENTRY _ZTI4aa60[];
+extern VTBL_ENTRY _ZTV4aa60[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+static Base_Class bases_ee60[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa60, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb60, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee60[];
+extern void _ZN4ee603fooEv();
+extern void ABISELECT(_ZThn16_N4ee603fooEv,_ZThn8_N4ee603fooEv)();
+static VTBL_ENTRY vtc_ee60[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee60[0]),
+ (VTBL_ENTRY)&_ZN4ee603fooEv,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZThn16_N4ee603fooEv,_ZThn8_N4ee603fooEv),
+};
+extern VTBL_ENTRY _ZTI4ee60[];
+extern VTBL_ENTRY _ZTV4ee60[];
+Class_Descriptor cd_ee60 = { "ee60", // class name
+ bases_ee60, 2,
+ &(vtc_ee60[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee60),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee60),6, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff60 : virtual cc60 , virtual dd60 {
+ int f;
+ ff60(const ABISELECT(__tsi64,int) *const *); // _ZN4ff60C2Ev
+ virtual void foo(); // _ZN4ff603fooEv
+ ~ff60(); // tgen
+ ff60(); // tgen
+};
+//SIG(-1 ff60) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff60 ::ff60(const ABISELECT(__tsi64,int) *const *){}
+void ff60 ::foo(){vfunc_called(this, "_ZN4ff603fooEv");}
+ff60 ::~ff60(){ note_dtor("ff60", this);} // tgen
+ff60 ::ff60(){ note_ctor("ff60", this);} // tgen
+
+static void Test_ff60()
+{
+ extern Class_Descriptor cd_ff60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff60, buf);
+ ff60 *dp, &lv = *(dp=new (buf) ff60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff60)");
+ check_base_class_offset(lv, (cc60*), ABISELECT(16,8), "ff60");
+ check_base_class_offset(lv, (dd60*), ABISELECT(32,16), "ff60");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff60.f");
+ test_class_info(&lv, &cd_ff60);
+ dp->~ff60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff60(Test_ff60, "ff60", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff60C1Ev();
+extern void _ZN4ff60D1Ev();
+Name_Map name_map_ff60[] = {
+ NSPAIR(_ZN4ff60C1Ev),
+ NSPAIR(_ZN4ff60D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc60;
+extern VTBL_ENTRY _ZTI4cc60[];
+extern VTBL_ENTRY _ZTV4cc60[];
+extern Class_Descriptor cd_dd60;
+extern VTBL_ENTRY _ZTI4dd60[];
+extern VTBL_ENTRY _ZTV4dd60[];
+static Base_Class bases_ff60[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc60, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd60, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff60[];
+extern void _ZN4ff603fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv)();
+extern void ABISELECT(_ZThn16_N4ff603fooEv,_ZThn8_N4ff603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv)();
+extern void ABISELECT(_ZThn32_N4ff603fooEv,_ZThn16_N4ff603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff60[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff60[0]),
+ (VTBL_ENTRY)&_ZN4ff603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff60[];
+static VTT_ENTRY vtt_ff60[] = {
+ {&(_ZTV4ff60[4]), 4,13},
+ {&(_ZTV4ff60[8]), 8,13},
+ {&(_ZTV4ff60[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff60[];
+extern VTBL_ENTRY _ZTV4ff60[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff60[];
+static VTBL_ENTRY alt_thunk_names149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff603fooEv,_ZThn16_N4ff603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff603fooEv,_ZThn8_N4ff603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff60 = { "ff60", // class name
+ bases_ff60, 2,
+ &(vtc_ff60[0]), // expected_vtbl_contents
+ &(vtt_ff60[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff60),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff60),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff60),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg60 : virtual ee60 , virtual ff60 {
+ int g;
+ gg60(const ABISELECT(__tsi64,int) *const *); // _ZN4gg60C2Ev
+ virtual void foo(); // _ZN4gg603fooEv
+ ~gg60(); // tgen
+ gg60(); // tgen
+};
+//SIG(1 gg60) C1{ VBC2{ BC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg60 ::gg60(const ABISELECT(__tsi64,int) *const *){}
+void gg60 ::foo(){vfunc_called(this, "_ZN4gg603fooEv");}
+gg60 ::~gg60(){ note_dtor("gg60", this);} // tgen
+gg60 ::gg60(){ note_ctor("gg60", this);} // tgen
+
+static void Test_gg60()
+{
+ extern Class_Descriptor cd_gg60;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg60, buf);
+ gg60 *dp, &lv = *(dp=new (buf) gg60());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg60)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg60)");
+ check_base_class_offset(lv, (aa60*)(ee60*), ABISELECT(16,8), "gg60");
+ check_base_class_offset(lv, (bb60*)(ee60*), ABISELECT(32,16), "gg60");
+ check_base_class_offset(lv, (ee60*), ABISELECT(16,8), "gg60");
+ check_base_class_offset(lv, (cc60*)(ff60*), ABISELECT(64,36), "gg60");
+ check_base_class_offset(lv, (dd60*)(ff60*), ABISELECT(80,44), "gg60");
+ check_base_class_offset(lv, (ff60*), ABISELECT(48,28), "gg60");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg60.g");
+ test_class_info(&lv, &cd_gg60);
+ dp->~gg60();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg60(Test_gg60, "gg60", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg60C1Ev();
+extern void _ZN4gg60D1Ev();
+Name_Map name_map_gg60[] = {
+ NSPAIR(_ZN4gg60C1Ev),
+ NSPAIR(_ZN4gg60D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa60;
+extern VTBL_ENTRY _ZTI4aa60[];
+extern VTBL_ENTRY _ZTV4aa60[];
+extern Class_Descriptor cd_bb60;
+extern VTBL_ENTRY _ZTI4bb60[];
+extern VTBL_ENTRY _ZTV4bb60[];
+extern Class_Descriptor cd_ee60;
+extern VTBL_ENTRY _ZTI4ee60[];
+extern VTBL_ENTRY _ZTV4ee60[];
+extern Class_Descriptor cd_cc60;
+extern VTBL_ENTRY _ZTI4cc60[];
+extern VTBL_ENTRY _ZTV4cc60[];
+extern Class_Descriptor cd_dd60;
+extern VTBL_ENTRY _ZTI4dd60[];
+extern VTBL_ENTRY _ZTV4dd60[];
+extern Class_Descriptor cd_ff60;
+extern VTBL_ENTRY _ZTI4ff60[];
+extern VTBL_ENTRY _ZTV4ff60[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff60[];
+static Base_Class bases_gg60[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa60, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb60, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee60, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc60, ABISELECT(64,36), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd60, ABISELECT(80,44), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff60, ABISELECT(48,28), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg60[];
+extern void _ZN4gg603fooEv();
+extern void ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv)();
+extern void ABISELECT(_ZThn16_N4gg603fooEv,_ZThn8_N4gg603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTvn16_n24_N4gg603fooEv,_ZTvn8_n12_N4gg603fooEv)();
+extern void ABISELECT(_ZTv0_n40_N4gg603fooEv,_ZTv0_n20_N4gg603fooEv)();
+extern void ABISELECT(_ZThn48_N4gg603fooEv,_ZThn28_N4gg603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv)();
+extern void ABISELECT(_ZThn64_N4gg603fooEv,_ZThn36_N4gg603fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv)();
+extern void ABISELECT(_ZThn80_N4gg603fooEv,_ZThn44_N4gg603fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg60[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg60[0]),
+ (VTBL_ENTRY)&_ZN4gg603fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTvn16_n24_N4gg603fooEv,_ZTvn8_n12_N4gg603fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg603fooEv,_ZTv0_n20_N4gg603fooEv),
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg60[];
+extern void _ZN4ff603fooEv();
+static VTBL_ENTRY _tg__ZTV4ff60__4gg60[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff60[0]),
+ (VTBL_ENTRY)&_ZN4ff603fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv)();
+extern void ABISELECT(_ZThn16_N4ff603fooEv,_ZThn8_N4ff603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc60__4ff60__4gg60[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv)();
+extern void ABISELECT(_ZThn32_N4ff603fooEv,_ZThn16_N4ff603fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd60__4ff60__4gg60[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff60[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv),
+};
+static VTT_ENTRY vtt_gg60[] = {
+ {&(_ZTV4gg60[6]), 6,28},
+ {&(_ZTV4gg60[10]), 10,28},
+ {&(_ZTV4gg60[13]), 13,28},
+ {&(_ZTV4gg60[19]), 19,28},
+ {&(_ZTV4gg60[23]), 23,28},
+ {&(_ZTV4gg60[27]), 27,28},
+ {&(_tg__ZTV4ff60__4gg60[4]), 4,5},
+ {&(_tg__ZTV4cc60__4ff60__4gg60[3]), 3,4},
+ {&(_tg__ZTV4dd60__4ff60__4gg60[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg60[];
+extern VTBL_ENTRY _ZTV4gg60[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg60[];
+static VTBL_ENTRY alt_thunk_names150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff603fooEv,_ZTv0_n12_N4ff603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff603fooEv,_ZThn16_N4ff603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff603fooEv,_ZThn8_N4ff603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg603fooEv,_ZTv0_n20_N4gg603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg603fooEv,_ZThn28_N4gg603fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg603fooEv,_ZTv0_n12_N4gg603fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg603fooEv,_ZThn44_N4gg603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg603fooEv,_ZThn36_N4gg603fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg603fooEv,_ZThn8_N4gg603fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg60 = { "gg60", // class name
+ bases_gg60, 6,
+ &(vtc_gg60[0]), // expected_vtbl_contents
+ &(vtt_gg60[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg60),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg60),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg60),9, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa61 {
+ int a;
+ aa61(); // _ZN4aa61C1Ev
+ virtual void foo(); // _ZN4aa613fooEv
+ ~aa61(); // tgen
+};
+//SIG(-1 aa61) C1{ v1 Fi}
+
+
+ aa61 ::aa61(){ note_ctor("aa61", this);}
+void aa61 ::foo(){vfunc_called(this, "_ZN4aa613fooEv");}
+aa61 ::~aa61(){ note_dtor("aa61", this);} // tgen
+
+static void Test_aa61()
+{
+ extern Class_Descriptor cd_aa61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa61, buf);
+ aa61 *dp, &lv = *(dp=new (buf) aa61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa61)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa61.a");
+ test_class_info(&lv, &cd_aa61);
+ dp->~aa61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa61(Test_aa61, "aa61", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa61C1Ev();
+extern void _ZN4aa61D1Ev();
+Name_Map name_map_aa61[] = {
+ NSPAIR(_ZN4aa61C1Ev),
+ NSPAIR(_ZN4aa61D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa61[];
+extern void _ZN4aa613fooEv();
+static VTBL_ENTRY vtc_aa61[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa61[0]),
+ (VTBL_ENTRY)&_ZN4aa613fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa61[];
+extern VTBL_ENTRY _ZTV4aa61[];
+Class_Descriptor cd_aa61 = { "aa61", // class name
+ 0,0,//no base classes
+ &(vtc_aa61[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa61),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa61),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb61 {
+ int b;
+ bb61(); // _ZN4bb61C1Ev
+ virtual void foo(); // _ZN4bb613fooEv
+ ~bb61(); // tgen
+};
+//SIG(-1 bb61) C1{ v1 Fi}
+
+
+ bb61 ::bb61(){ note_ctor("bb61", this);}
+void bb61 ::foo(){vfunc_called(this, "_ZN4bb613fooEv");}
+bb61 ::~bb61(){ note_dtor("bb61", this);} // tgen
+
+static void Test_bb61()
+{
+ extern Class_Descriptor cd_bb61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb61, buf);
+ bb61 *dp, &lv = *(dp=new (buf) bb61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb61)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb61.b");
+ test_class_info(&lv, &cd_bb61);
+ dp->~bb61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb61(Test_bb61, "bb61", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb61C1Ev();
+extern void _ZN4bb61D1Ev();
+Name_Map name_map_bb61[] = {
+ NSPAIR(_ZN4bb61C1Ev),
+ NSPAIR(_ZN4bb61D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb61[];
+extern void _ZN4bb613fooEv();
+static VTBL_ENTRY vtc_bb61[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb61[0]),
+ (VTBL_ENTRY)&_ZN4bb613fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+Class_Descriptor cd_bb61 = { "bb61", // class name
+ 0,0,//no base classes
+ &(vtc_bb61[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb61),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb61),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc61 {
+ int c;
+ cc61(); // _ZN4cc61C1Ev
+ virtual void foo(); // _ZN4cc613fooEv
+ ~cc61(); // tgen
+};
+//SIG(-1 cc61) C1{ v1 Fi}
+
+
+ cc61 ::cc61(){ note_ctor("cc61", this);}
+void cc61 ::foo(){vfunc_called(this, "_ZN4cc613fooEv");}
+cc61 ::~cc61(){ note_dtor("cc61", this);} // tgen
+
+static void Test_cc61()
+{
+ extern Class_Descriptor cd_cc61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc61, buf);
+ cc61 *dp, &lv = *(dp=new (buf) cc61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc61)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc61.c");
+ test_class_info(&lv, &cd_cc61);
+ dp->~cc61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc61(Test_cc61, "cc61", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc61C1Ev();
+extern void _ZN4cc61D1Ev();
+Name_Map name_map_cc61[] = {
+ NSPAIR(_ZN4cc61C1Ev),
+ NSPAIR(_ZN4cc61D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc61[];
+extern void _ZN4cc613fooEv();
+static VTBL_ENTRY vtc_cc61[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc61[0]),
+ (VTBL_ENTRY)&_ZN4cc613fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc61[];
+extern VTBL_ENTRY _ZTV4cc61[];
+Class_Descriptor cd_cc61 = { "cc61", // class name
+ 0,0,//no base classes
+ &(vtc_cc61[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc61),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc61),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd61 {
+ int d;
+ dd61(); // _ZN4dd61C1Ev
+ virtual void foo(); // _ZN4dd613fooEv
+ ~dd61(); // tgen
+};
+//SIG(-1 dd61) C1{ v1 Fi}
+
+
+ dd61 ::dd61(){ note_ctor("dd61", this);}
+void dd61 ::foo(){vfunc_called(this, "_ZN4dd613fooEv");}
+dd61 ::~dd61(){ note_dtor("dd61", this);} // tgen
+
+static void Test_dd61()
+{
+ extern Class_Descriptor cd_dd61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd61, buf);
+ dd61 *dp, &lv = *(dp=new (buf) dd61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd61)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd61.d");
+ test_class_info(&lv, &cd_dd61);
+ dp->~dd61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd61(Test_dd61, "dd61", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd61C1Ev();
+extern void _ZN4dd61D1Ev();
+Name_Map name_map_dd61[] = {
+ NSPAIR(_ZN4dd61C1Ev),
+ NSPAIR(_ZN4dd61D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd61[];
+extern void _ZN4dd613fooEv();
+static VTBL_ENTRY vtc_dd61[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd61[0]),
+ (VTBL_ENTRY)&_ZN4dd613fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd61[];
+extern VTBL_ENTRY _ZTV4dd61[];
+Class_Descriptor cd_dd61 = { "dd61", // class name
+ 0,0,//no base classes
+ &(vtc_dd61[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd61),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd61),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61 : virtual aa61 , bb61 {
+ int e;
+ ee61(const ABISELECT(__tsi64,int) *const *); // _ZN4ee61C2Ev
+ virtual void foo(); // _ZN4ee613fooEv
+ ~ee61(); // tgen
+ ee61(); // tgen
+};
+//SIG(-1 ee61) C1{ VBC2{ v1 Fi} BC3{ v1 Fi} v1 Fi}
+
+
+ ee61 ::ee61(const ABISELECT(__tsi64,int) *const *){}
+void ee61 ::foo(){vfunc_called(this, "_ZN4ee613fooEv");}
+ee61 ::~ee61(){ note_dtor("ee61", this);} // tgen
+ee61 ::ee61(){ note_ctor("ee61", this);} // tgen
+
+static void Test_ee61()
+{
+ extern Class_Descriptor cd_ee61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee61, buf);
+ ee61 *dp, &lv = *(dp=new (buf) ee61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61)");
+ check_base_class_offset(lv, (aa61*), ABISELECT(16,12), "ee61");
+ check_base_class_offset(lv, (bb61*), 0, "ee61");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61.e");
+ test_class_info(&lv, &cd_ee61);
+ dp->~ee61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61(Test_ee61, "ee61", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee61C1Ev();
+extern void _ZN4ee61D1Ev();
+Name_Map name_map_ee61[] = {
+ NSPAIR(_ZN4ee61C1Ev),
+ NSPAIR(_ZN4ee61D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa61;
+extern VTBL_ENTRY _ZTI4aa61[];
+extern VTBL_ENTRY _ZTV4aa61[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+static Base_Class bases_ee61[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa61, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb61, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee61[];
+extern void _ZN4ee613fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee613fooEv,_ZTv0_n12_N4ee613fooEv)();
+extern void ABISELECT(_ZThn16_N4ee613fooEv,_ZThn12_N4ee613fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee61[0]),
+ (VTBL_ENTRY)&_ZN4ee613fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee613fooEv,_ZTv0_n12_N4ee613fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee61[];
+static VTT_ENTRY vtt_ee61[] = {
+ {&(_ZTV4ee61[3]), 3,8},
+ {&(_ZTV4ee61[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee61[];
+extern VTBL_ENTRY _ZTV4ee61[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee61[];
+static VTBL_ENTRY alt_thunk_names151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee613fooEv,_ZTv0_n12_N4ee613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee613fooEv,_ZThn12_N4ee613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61 = { "ee61", // class name
+ bases_ee61, 2,
+ &(vtc_ee61[0]), // expected_vtbl_contents
+ &(vtt_ee61[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee61),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee61),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee61),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff61 : virtual cc61 , virtual dd61 {
+ int f;
+ ff61(const ABISELECT(__tsi64,int) *const *); // _ZN4ff61C2Ev
+ virtual void foo(); // _ZN4ff613fooEv
+ ~ff61(); // tgen
+ ff61(); // tgen
+};
+//SIG(-1 ff61) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff61 ::ff61(const ABISELECT(__tsi64,int) *const *){}
+void ff61 ::foo(){vfunc_called(this, "_ZN4ff613fooEv");}
+ff61 ::~ff61(){ note_dtor("ff61", this);} // tgen
+ff61 ::ff61(){ note_ctor("ff61", this);} // tgen
+
+static void Test_ff61()
+{
+ extern Class_Descriptor cd_ff61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff61, buf);
+ ff61 *dp, &lv = *(dp=new (buf) ff61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff61)");
+ check_base_class_offset(lv, (cc61*), ABISELECT(16,8), "ff61");
+ check_base_class_offset(lv, (dd61*), ABISELECT(32,16), "ff61");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff61.f");
+ test_class_info(&lv, &cd_ff61);
+ dp->~ff61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff61(Test_ff61, "ff61", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff61C1Ev();
+extern void _ZN4ff61D1Ev();
+Name_Map name_map_ff61[] = {
+ NSPAIR(_ZN4ff61C1Ev),
+ NSPAIR(_ZN4ff61D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc61;
+extern VTBL_ENTRY _ZTI4cc61[];
+extern VTBL_ENTRY _ZTV4cc61[];
+extern Class_Descriptor cd_dd61;
+extern VTBL_ENTRY _ZTI4dd61[];
+extern VTBL_ENTRY _ZTV4dd61[];
+static Base_Class bases_ff61[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc61, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd61, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff61[];
+extern void _ZN4ff613fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv)();
+extern void ABISELECT(_ZThn16_N4ff613fooEv,_ZThn8_N4ff613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv)();
+extern void ABISELECT(_ZThn32_N4ff613fooEv,_ZThn16_N4ff613fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff61[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff61[0]),
+ (VTBL_ENTRY)&_ZN4ff613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff61[];
+static VTT_ENTRY vtt_ff61[] = {
+ {&(_ZTV4ff61[4]), 4,13},
+ {&(_ZTV4ff61[8]), 8,13},
+ {&(_ZTV4ff61[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff61[];
+extern VTBL_ENTRY _ZTV4ff61[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff61[];
+static VTBL_ENTRY alt_thunk_names152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff613fooEv,_ZThn16_N4ff613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff613fooEv,_ZThn8_N4ff613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff61 = { "ff61", // class name
+ bases_ff61, 2,
+ &(vtc_ff61[0]), // expected_vtbl_contents
+ &(vtt_ff61[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff61),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff61),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff61),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg61 : virtual ee61 , virtual ff61 {
+ int g;
+ gg61(const ABISELECT(__tsi64,int) *const *); // _ZN4gg61C2Ev
+ virtual void foo(); // _ZN4gg613fooEv
+ ~gg61(); // tgen
+ gg61(); // tgen
+};
+//SIG(1 gg61) C1{ VBC2{ VBC3{ v1 Fi} BC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg61 ::gg61(const ABISELECT(__tsi64,int) *const *){}
+void gg61 ::foo(){vfunc_called(this, "_ZN4gg613fooEv");}
+gg61 ::~gg61(){ note_dtor("gg61", this);} // tgen
+gg61 ::gg61(){ note_ctor("gg61", this);} // tgen
+
+static void Test_gg61()
+{
+ extern Class_Descriptor cd_gg61;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg61, buf);
+ gg61 *dp, &lv = *(dp=new (buf) gg61());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg61)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg61)");
+ check_base_class_offset(lv, (aa61*)(ee61*), ABISELECT(32,20), "gg61");
+ check_base_class_offset(lv, (bb61*)(ee61*), ABISELECT(16,8), "gg61");
+ check_base_class_offset(lv, (ee61*), ABISELECT(16,8), "gg61");
+ check_base_class_offset(lv, (cc61*)(ff61*), ABISELECT(64,36), "gg61");
+ check_base_class_offset(lv, (dd61*)(ff61*), ABISELECT(80,44), "gg61");
+ check_base_class_offset(lv, (ff61*), ABISELECT(48,28), "gg61");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg61.g");
+ test_class_info(&lv, &cd_gg61);
+ dp->~gg61();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg61(Test_gg61, "gg61", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg61C1Ev();
+extern void _ZN4gg61D1Ev();
+Name_Map name_map_gg61[] = {
+ NSPAIR(_ZN4gg61C1Ev),
+ NSPAIR(_ZN4gg61D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa61;
+extern VTBL_ENTRY _ZTI4aa61[];
+extern VTBL_ENTRY _ZTV4aa61[];
+extern Class_Descriptor cd_bb61;
+extern VTBL_ENTRY _ZTI4bb61[];
+extern VTBL_ENTRY _ZTV4bb61[];
+extern Class_Descriptor cd_ee61;
+extern VTBL_ENTRY _ZTI4ee61[];
+extern VTBL_ENTRY _ZTV4ee61[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee61[];
+extern Class_Descriptor cd_cc61;
+extern VTBL_ENTRY _ZTI4cc61[];
+extern VTBL_ENTRY _ZTV4cc61[];
+extern Class_Descriptor cd_dd61;
+extern VTBL_ENTRY _ZTI4dd61[];
+extern VTBL_ENTRY _ZTV4dd61[];
+extern Class_Descriptor cd_ff61;
+extern VTBL_ENTRY _ZTI4ff61[];
+extern VTBL_ENTRY _ZTV4ff61[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff61[];
+static Base_Class bases_gg61[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa61, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb61, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_ee61, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc61, ABISELECT(64,36), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd61, ABISELECT(80,44), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff61, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg61[];
+extern void _ZN4gg613fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg613fooEv,_ZTv0_n16_N4gg613fooEv)();
+extern void ABISELECT(_ZThn16_N4gg613fooEv,_ZThn8_N4gg613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv)();
+extern void ABISELECT(_ZThn32_N4gg613fooEv,_ZThn20_N4gg613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N4gg613fooEv,_ZTv0_n20_N4gg613fooEv)();
+extern void ABISELECT(_ZThn48_N4gg613fooEv,_ZThn28_N4gg613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv)();
+extern void ABISELECT(_ZThn64_N4gg613fooEv,_ZThn36_N4gg613fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv)();
+extern void ABISELECT(_ZThn80_N4gg613fooEv,_ZThn44_N4gg613fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg61[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg61[0]),
+ (VTBL_ENTRY)&_ZN4gg613fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg613fooEv,_ZTv0_n16_N4gg613fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg613fooEv,_ZTv0_n20_N4gg613fooEv),
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg61[];
+extern void _ZN4ee613fooEv();
+static VTBL_ENTRY _tg__ZTV4ee61__4gg61[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee61[0]),
+ (VTBL_ENTRY)&_ZN4ee613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee613fooEv,_ZTv0_n12_N4ee613fooEv)();
+extern void ABISELECT(_ZThn16_N4ee613fooEv,_ZThn12_N4ee613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa61__4ee61__4gg61[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee613fooEv,_ZTv0_n12_N4ee613fooEv),
+};
+extern void _ZN4ff613fooEv();
+static VTBL_ENTRY _tg__ZTV4ff61__4gg61[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff61[0]),
+ (VTBL_ENTRY)&_ZN4ff613fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv)();
+extern void ABISELECT(_ZThn16_N4ff613fooEv,_ZThn8_N4ff613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc61__4ff61__4gg61[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv)();
+extern void ABISELECT(_ZThn32_N4ff613fooEv,_ZThn16_N4ff613fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd61__4ff61__4gg61[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff61[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv),
+};
+static VTT_ENTRY vtt_gg61[] = {
+ {&(_ZTV4gg61[7]), 7,31},
+ {&(_ZTV4gg61[12]), 12,31},
+ {&(_ZTV4gg61[16]), 16,31},
+ {&(_ZTV4gg61[22]), 22,31},
+ {&(_ZTV4gg61[26]), 26,31},
+ {&(_ZTV4gg61[30]), 30,31},
+ {&(_tg__ZTV4ee61__4gg61[3]), 3,4},
+ {&(_tg__ZTV4aa61__4ee61__4gg61[3]), 3,4},
+ {&(_tg__ZTV4ff61__4gg61[4]), 4,5},
+ {&(_tg__ZTV4cc61__4ff61__4gg61[3]), 3,4},
+ {&(_tg__ZTV4dd61__4ff61__4gg61[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg61[];
+extern VTBL_ENTRY _ZTV4gg61[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg61[];
+static VTBL_ENTRY alt_thunk_names153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff613fooEv,_ZTv0_n12_N4ff613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff613fooEv,_ZThn16_N4ff613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff613fooEv,_ZThn8_N4ff613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee613fooEv,_ZTv0_n12_N4ee613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee613fooEv,_ZThn12_N4ee613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg613fooEv,_ZTv0_n20_N4gg613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg613fooEv,_ZThn28_N4gg613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg613fooEv,_ZTv0_n12_N4gg613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg613fooEv,_ZThn44_N4gg613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg613fooEv,_ZThn36_N4gg613fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg613fooEv,_ZThn20_N4gg613fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg613fooEv,_ZTv0_n16_N4gg613fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg613fooEv,_ZThn8_N4gg613fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg61 = { "gg61", // class name
+ bases_gg61, 6,
+ &(vtc_gg61[0]), // expected_vtbl_contents
+ &(vtt_gg61[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg61),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg61),31, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg61),11, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa62 {
+ int a;
+ aa62(); // _ZN4aa62C1Ev
+ virtual void foo(); // _ZN4aa623fooEv
+ ~aa62(); // tgen
+};
+//SIG(-1 aa62) C1{ v1 Fi}
+
+
+ aa62 ::aa62(){ note_ctor("aa62", this);}
+void aa62 ::foo(){vfunc_called(this, "_ZN4aa623fooEv");}
+aa62 ::~aa62(){ note_dtor("aa62", this);} // tgen
+
+static void Test_aa62()
+{
+ extern Class_Descriptor cd_aa62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa62, buf);
+ aa62 *dp, &lv = *(dp=new (buf) aa62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa62)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa62.a");
+ test_class_info(&lv, &cd_aa62);
+ dp->~aa62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa62(Test_aa62, "aa62", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa62C1Ev();
+extern void _ZN4aa62D1Ev();
+Name_Map name_map_aa62[] = {
+ NSPAIR(_ZN4aa62C1Ev),
+ NSPAIR(_ZN4aa62D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa62[];
+extern void _ZN4aa623fooEv();
+static VTBL_ENTRY vtc_aa62[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa62[0]),
+ (VTBL_ENTRY)&_ZN4aa623fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa62[];
+extern VTBL_ENTRY _ZTV4aa62[];
+Class_Descriptor cd_aa62 = { "aa62", // class name
+ 0,0,//no base classes
+ &(vtc_aa62[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa62),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa62),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb62 {
+ int b;
+ bb62(); // _ZN4bb62C1Ev
+ virtual void foo(); // _ZN4bb623fooEv
+ ~bb62(); // tgen
+};
+//SIG(-1 bb62) C1{ v1 Fi}
+
+
+ bb62 ::bb62(){ note_ctor("bb62", this);}
+void bb62 ::foo(){vfunc_called(this, "_ZN4bb623fooEv");}
+bb62 ::~bb62(){ note_dtor("bb62", this);} // tgen
+
+static void Test_bb62()
+{
+ extern Class_Descriptor cd_bb62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb62, buf);
+ bb62 *dp, &lv = *(dp=new (buf) bb62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb62)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb62.b");
+ test_class_info(&lv, &cd_bb62);
+ dp->~bb62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb62(Test_bb62, "bb62", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb62C1Ev();
+extern void _ZN4bb62D1Ev();
+Name_Map name_map_bb62[] = {
+ NSPAIR(_ZN4bb62C1Ev),
+ NSPAIR(_ZN4bb62D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb62[];
+extern void _ZN4bb623fooEv();
+static VTBL_ENTRY vtc_bb62[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb62[0]),
+ (VTBL_ENTRY)&_ZN4bb623fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+Class_Descriptor cd_bb62 = { "bb62", // class name
+ 0,0,//no base classes
+ &(vtc_bb62[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb62),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb62),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc62 {
+ int c;
+ cc62(); // _ZN4cc62C1Ev
+ virtual void foo(); // _ZN4cc623fooEv
+ ~cc62(); // tgen
+};
+//SIG(-1 cc62) C1{ v1 Fi}
+
+
+ cc62 ::cc62(){ note_ctor("cc62", this);}
+void cc62 ::foo(){vfunc_called(this, "_ZN4cc623fooEv");}
+cc62 ::~cc62(){ note_dtor("cc62", this);} // tgen
+
+static void Test_cc62()
+{
+ extern Class_Descriptor cd_cc62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc62, buf);
+ cc62 *dp, &lv = *(dp=new (buf) cc62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc62)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc62.c");
+ test_class_info(&lv, &cd_cc62);
+ dp->~cc62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc62(Test_cc62, "cc62", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc62C1Ev();
+extern void _ZN4cc62D1Ev();
+Name_Map name_map_cc62[] = {
+ NSPAIR(_ZN4cc62C1Ev),
+ NSPAIR(_ZN4cc62D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc62[];
+extern void _ZN4cc623fooEv();
+static VTBL_ENTRY vtc_cc62[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc62[0]),
+ (VTBL_ENTRY)&_ZN4cc623fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc62[];
+extern VTBL_ENTRY _ZTV4cc62[];
+Class_Descriptor cd_cc62 = { "cc62", // class name
+ 0,0,//no base classes
+ &(vtc_cc62[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc62),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc62),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd62 {
+ int d;
+ dd62(); // _ZN4dd62C1Ev
+ virtual void foo(); // _ZN4dd623fooEv
+ ~dd62(); // tgen
+};
+//SIG(-1 dd62) C1{ v1 Fi}
+
+
+ dd62 ::dd62(){ note_ctor("dd62", this);}
+void dd62 ::foo(){vfunc_called(this, "_ZN4dd623fooEv");}
+dd62 ::~dd62(){ note_dtor("dd62", this);} // tgen
+
+static void Test_dd62()
+{
+ extern Class_Descriptor cd_dd62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd62, buf);
+ dd62 *dp, &lv = *(dp=new (buf) dd62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd62)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd62.d");
+ test_class_info(&lv, &cd_dd62);
+ dp->~dd62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd62(Test_dd62, "dd62", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd62C1Ev();
+extern void _ZN4dd62D1Ev();
+Name_Map name_map_dd62[] = {
+ NSPAIR(_ZN4dd62C1Ev),
+ NSPAIR(_ZN4dd62D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd62[];
+extern void _ZN4dd623fooEv();
+static VTBL_ENTRY vtc_dd62[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd62[0]),
+ (VTBL_ENTRY)&_ZN4dd623fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd62[];
+extern VTBL_ENTRY _ZTV4dd62[];
+Class_Descriptor cd_dd62 = { "dd62", // class name
+ 0,0,//no base classes
+ &(vtc_dd62[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd62),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd62),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62 : aa62 , virtual bb62 {
+ int e;
+ ee62(const ABISELECT(__tsi64,int) *const *); // _ZN4ee62C2Ev
+ virtual void foo(); // _ZN4ee623fooEv
+ ~ee62(); // tgen
+ ee62(); // tgen
+};
+//SIG(-1 ee62) C1{ BC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee62 ::ee62(const ABISELECT(__tsi64,int) *const *){}
+void ee62 ::foo(){vfunc_called(this, "_ZN4ee623fooEv");}
+ee62 ::~ee62(){ note_dtor("ee62", this);} // tgen
+ee62 ::ee62(){ note_ctor("ee62", this);} // tgen
+
+static void Test_ee62()
+{
+ extern Class_Descriptor cd_ee62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_ee62, buf);
+ ee62 *dp, &lv = *(dp=new (buf) ee62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(ee62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62)");
+ check_base_class_offset(lv, (aa62*), 0, "ee62");
+ check_base_class_offset(lv, (bb62*), ABISELECT(16,12), "ee62");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee62.e");
+ test_class_info(&lv, &cd_ee62);
+ dp->~ee62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62(Test_ee62, "ee62", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN4ee62C1Ev();
+extern void _ZN4ee62D1Ev();
+Name_Map name_map_ee62[] = {
+ NSPAIR(_ZN4ee62C1Ev),
+ NSPAIR(_ZN4ee62D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa62;
+extern VTBL_ENTRY _ZTI4aa62[];
+extern VTBL_ENTRY _ZTV4aa62[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+static Base_Class bases_ee62[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa62, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {&cd_bb62, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee62[];
+extern void _ZN4ee623fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee623fooEv,_ZTv0_n12_N4ee623fooEv)();
+extern void ABISELECT(_ZThn16_N4ee623fooEv,_ZThn12_N4ee623fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee62[0]),
+ (VTBL_ENTRY)&_ZN4ee623fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee623fooEv,_ZTv0_n12_N4ee623fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee62[];
+static VTT_ENTRY vtt_ee62[] = {
+ {&(_ZTV4ee62[3]), 3,8},
+ {&(_ZTV4ee62[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4ee62[];
+extern VTBL_ENTRY _ZTV4ee62[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee62[];
+static VTBL_ENTRY alt_thunk_names154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee623fooEv,_ZTv0_n12_N4ee623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee623fooEv,_ZThn12_N4ee623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62 = { "ee62", // class name
+ bases_ee62, 2,
+ &(vtc_ee62[0]), // expected_vtbl_contents
+ &(vtt_ee62[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI4ee62),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee62),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee62),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff62 : virtual cc62 , virtual dd62 {
+ int f;
+ ff62(const ABISELECT(__tsi64,int) *const *); // _ZN4ff62C2Ev
+ virtual void foo(); // _ZN4ff623fooEv
+ ~ff62(); // tgen
+ ff62(); // tgen
+};
+//SIG(-1 ff62) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff62 ::ff62(const ABISELECT(__tsi64,int) *const *){}
+void ff62 ::foo(){vfunc_called(this, "_ZN4ff623fooEv");}
+ff62 ::~ff62(){ note_dtor("ff62", this);} // tgen
+ff62 ::ff62(){ note_ctor("ff62", this);} // tgen
+
+static void Test_ff62()
+{
+ extern Class_Descriptor cd_ff62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff62, buf);
+ ff62 *dp, &lv = *(dp=new (buf) ff62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff62)");
+ check_base_class_offset(lv, (cc62*), ABISELECT(16,8), "ff62");
+ check_base_class_offset(lv, (dd62*), ABISELECT(32,16), "ff62");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff62.f");
+ test_class_info(&lv, &cd_ff62);
+ dp->~ff62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff62(Test_ff62, "ff62", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff62C1Ev();
+extern void _ZN4ff62D1Ev();
+Name_Map name_map_ff62[] = {
+ NSPAIR(_ZN4ff62C1Ev),
+ NSPAIR(_ZN4ff62D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc62;
+extern VTBL_ENTRY _ZTI4cc62[];
+extern VTBL_ENTRY _ZTV4cc62[];
+extern Class_Descriptor cd_dd62;
+extern VTBL_ENTRY _ZTI4dd62[];
+extern VTBL_ENTRY _ZTV4dd62[];
+static Base_Class bases_ff62[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc62, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd62, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff62[];
+extern void _ZN4ff623fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv)();
+extern void ABISELECT(_ZThn16_N4ff623fooEv,_ZThn8_N4ff623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv)();
+extern void ABISELECT(_ZThn32_N4ff623fooEv,_ZThn16_N4ff623fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff62[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff62[0]),
+ (VTBL_ENTRY)&_ZN4ff623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff62[];
+static VTT_ENTRY vtt_ff62[] = {
+ {&(_ZTV4ff62[4]), 4,13},
+ {&(_ZTV4ff62[8]), 8,13},
+ {&(_ZTV4ff62[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff62[];
+extern VTBL_ENTRY _ZTV4ff62[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff62[];
+static VTBL_ENTRY alt_thunk_names155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff623fooEv,_ZThn16_N4ff623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff623fooEv,_ZThn8_N4ff623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff62 = { "ff62", // class name
+ bases_ff62, 2,
+ &(vtc_ff62[0]), // expected_vtbl_contents
+ &(vtt_ff62[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff62),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff62),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff62),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names155,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg62 : virtual ee62 , virtual ff62 {
+ int g;
+ gg62(const ABISELECT(__tsi64,int) *const *); // _ZN4gg62C2Ev
+ virtual void foo(); // _ZN4gg623fooEv
+ ~gg62(); // tgen
+ gg62(); // tgen
+};
+//SIG(1 gg62) C1{ VBC2{ BC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg62 ::gg62(const ABISELECT(__tsi64,int) *const *){}
+void gg62 ::foo(){vfunc_called(this, "_ZN4gg623fooEv");}
+gg62 ::~gg62(){ note_dtor("gg62", this);} // tgen
+gg62 ::gg62(){ note_ctor("gg62", this);} // tgen
+
+static void Test_gg62()
+{
+ extern Class_Descriptor cd_gg62;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(13,14)];
+ init_test(&cd_gg62, buf);
+ gg62 *dp, &lv = *(dp=new (buf) gg62());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,52), "sizeof(gg62)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg62)");
+ check_base_class_offset(lv, (aa62*)(ee62*), ABISELECT(16,8), "gg62");
+ check_base_class_offset(lv, (bb62*)(ee62*), ABISELECT(32,20), "gg62");
+ check_base_class_offset(lv, (ee62*), ABISELECT(16,8), "gg62");
+ check_base_class_offset(lv, (cc62*)(ff62*), ABISELECT(64,36), "gg62");
+ check_base_class_offset(lv, (dd62*)(ff62*), ABISELECT(80,44), "gg62");
+ check_base_class_offset(lv, (ff62*), ABISELECT(48,28), "gg62");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg62.g");
+ test_class_info(&lv, &cd_gg62);
+ dp->~gg62();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg62(Test_gg62, "gg62", ABISELECT(96,52));
+
+#else // __cplusplus
+
+extern void _ZN4gg62C1Ev();
+extern void _ZN4gg62D1Ev();
+Name_Map name_map_gg62[] = {
+ NSPAIR(_ZN4gg62C1Ev),
+ NSPAIR(_ZN4gg62D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa62;
+extern VTBL_ENTRY _ZTI4aa62[];
+extern VTBL_ENTRY _ZTV4aa62[];
+extern Class_Descriptor cd_bb62;
+extern VTBL_ENTRY _ZTI4bb62[];
+extern VTBL_ENTRY _ZTV4bb62[];
+extern Class_Descriptor cd_ee62;
+extern VTBL_ENTRY _ZTI4ee62[];
+extern VTBL_ENTRY _ZTV4ee62[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee62[];
+extern Class_Descriptor cd_cc62;
+extern VTBL_ENTRY _ZTI4cc62[];
+extern VTBL_ENTRY _ZTV4cc62[];
+extern Class_Descriptor cd_dd62;
+extern VTBL_ENTRY _ZTI4dd62[];
+extern VTBL_ENTRY _ZTV4dd62[];
+extern Class_Descriptor cd_ff62;
+extern VTBL_ENTRY _ZTI4ff62[];
+extern VTBL_ENTRY _ZTV4ff62[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff62[];
+static Base_Class bases_gg62[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa62, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_bb62, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee62, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc62, ABISELECT(64,36), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd62, ABISELECT(80,44), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff62, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg62[];
+extern void _ZN4gg623fooEv();
+extern void ABISELECT(_ZTv0_n32_N4gg623fooEv,_ZTv0_n16_N4gg623fooEv)();
+extern void ABISELECT(_ZThn16_N4gg623fooEv,_ZThn8_N4gg623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv)();
+extern void ABISELECT(_ZThn32_N4gg623fooEv,_ZThn20_N4gg623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N4gg623fooEv,_ZTv0_n20_N4gg623fooEv)();
+extern void ABISELECT(_ZThn48_N4gg623fooEv,_ZThn28_N4gg623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv)();
+extern void ABISELECT(_ZThn64_N4gg623fooEv,_ZThn36_N4gg623fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv)();
+extern void ABISELECT(_ZThn80_N4gg623fooEv,_ZThn44_N4gg623fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg62[] = {
+ ABISELECT(80,44),
+ ABISELECT(64,36),
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg62[0]),
+ (VTBL_ENTRY)&_ZN4gg623fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4gg623fooEv,_ZTv0_n16_N4gg623fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI4gg62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI4gg62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg623fooEv,_ZTv0_n20_N4gg623fooEv),
+ ABISELECT(-64,-36),
+ ABISELECT(-64,-36),
+ (VTBL_ENTRY)&(_ZTI4gg62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv),
+ ABISELECT(-80,-44),
+ ABISELECT(-80,-44),
+ (VTBL_ENTRY)&(_ZTI4gg62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg62[];
+extern void _ZN4ee623fooEv();
+static VTBL_ENTRY _tg__ZTV4ee62__4gg62[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee62[0]),
+ (VTBL_ENTRY)&_ZN4ee623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee623fooEv,_ZTv0_n12_N4ee623fooEv)();
+extern void ABISELECT(_ZThn16_N4ee623fooEv,_ZThn12_N4ee623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb62__4ee62__4gg62[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4ee62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee623fooEv,_ZTv0_n12_N4ee623fooEv),
+};
+extern void _ZN4ff623fooEv();
+static VTBL_ENTRY _tg__ZTV4ff62__4gg62[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff62[0]),
+ (VTBL_ENTRY)&_ZN4ff623fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv)();
+extern void ABISELECT(_ZThn16_N4ff623fooEv,_ZThn8_N4ff623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc62__4ff62__4gg62[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv)();
+extern void ABISELECT(_ZThn32_N4ff623fooEv,_ZThn16_N4ff623fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd62__4ff62__4gg62[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff62[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv),
+};
+static VTT_ENTRY vtt_gg62[] = {
+ {&(_ZTV4gg62[7]), 7,31},
+ {&(_ZTV4gg62[12]), 12,31},
+ {&(_ZTV4gg62[16]), 16,31},
+ {&(_ZTV4gg62[22]), 22,31},
+ {&(_ZTV4gg62[26]), 26,31},
+ {&(_ZTV4gg62[30]), 30,31},
+ {&(_tg__ZTV4ee62__4gg62[3]), 3,4},
+ {&(_tg__ZTV4bb62__4ee62__4gg62[3]), 3,4},
+ {&(_tg__ZTV4ff62__4gg62[4]), 4,5},
+ {&(_tg__ZTV4cc62__4ff62__4gg62[3]), 3,4},
+ {&(_tg__ZTV4dd62__4ff62__4gg62[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg62[];
+extern VTBL_ENTRY _ZTV4gg62[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg62[];
+static VTBL_ENTRY alt_thunk_names156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff623fooEv,_ZTv0_n12_N4ff623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff623fooEv,_ZThn16_N4ff623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff623fooEv,_ZThn8_N4ff623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee623fooEv,_ZTv0_n12_N4ee623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee623fooEv,_ZThn12_N4ee623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg623fooEv,_ZTv0_n20_N4gg623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg623fooEv,_ZThn28_N4gg623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg623fooEv,_ZTv0_n12_N4gg623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg623fooEv,_ZThn44_N4gg623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg623fooEv,_ZThn36_N4gg623fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg623fooEv,_ZThn20_N4gg623fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4gg623fooEv,_ZTv0_n16_N4gg623fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg623fooEv,_ZThn8_N4gg623fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg62 = { "gg62", // class name
+ bases_gg62, 6,
+ &(vtc_gg62[0]), // expected_vtbl_contents
+ &(vtt_gg62[0]), // expected_vtt_contents
+ ABISELECT(96,52), // object size
+ NSPAIRA(_ZTI4gg62),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg62),31, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg62),11, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names156,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa63 {
+ int a;
+ aa63(); // _ZN4aa63C1Ev
+ virtual void foo(); // _ZN4aa633fooEv
+ ~aa63(); // tgen
+};
+//SIG(-1 aa63) C1{ v1 Fi}
+
+
+ aa63 ::aa63(){ note_ctor("aa63", this);}
+void aa63 ::foo(){vfunc_called(this, "_ZN4aa633fooEv");}
+aa63 ::~aa63(){ note_dtor("aa63", this);} // tgen
+
+static void Test_aa63()
+{
+ extern Class_Descriptor cd_aa63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa63, buf);
+ aa63 *dp, &lv = *(dp=new (buf) aa63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa63)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa63.a");
+ test_class_info(&lv, &cd_aa63);
+ dp->~aa63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa63(Test_aa63, "aa63", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4aa63C1Ev();
+extern void _ZN4aa63D1Ev();
+Name_Map name_map_aa63[] = {
+ NSPAIR(_ZN4aa63C1Ev),
+ NSPAIR(_ZN4aa63D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4aa63[];
+extern void _ZN4aa633fooEv();
+static VTBL_ENTRY vtc_aa63[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4aa63[0]),
+ (VTBL_ENTRY)&_ZN4aa633fooEv,
+};
+extern VTBL_ENTRY _ZTI4aa63[];
+extern VTBL_ENTRY _ZTV4aa63[];
+Class_Descriptor cd_aa63 = { "aa63", // class name
+ 0,0,//no base classes
+ &(vtc_aa63[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4aa63),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4aa63),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb63 {
+ int b;
+ bb63(); // _ZN4bb63C1Ev
+ virtual void foo(); // _ZN4bb633fooEv
+ ~bb63(); // tgen
+};
+//SIG(-1 bb63) C1{ v1 Fi}
+
+
+ bb63 ::bb63(){ note_ctor("bb63", this);}
+void bb63 ::foo(){vfunc_called(this, "_ZN4bb633fooEv");}
+bb63 ::~bb63(){ note_dtor("bb63", this);} // tgen
+
+static void Test_bb63()
+{
+ extern Class_Descriptor cd_bb63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_bb63, buf);
+ bb63 *dp, &lv = *(dp=new (buf) bb63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(bb63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb63)");
+ check_field_offset(lv, b, ABISELECT(8,4), "bb63.b");
+ test_class_info(&lv, &cd_bb63);
+ dp->~bb63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb63(Test_bb63, "bb63", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4bb63C1Ev();
+extern void _ZN4bb63D1Ev();
+Name_Map name_map_bb63[] = {
+ NSPAIR(_ZN4bb63C1Ev),
+ NSPAIR(_ZN4bb63D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4bb63[];
+extern void _ZN4bb633fooEv();
+static VTBL_ENTRY vtc_bb63[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb63[0]),
+ (VTBL_ENTRY)&_ZN4bb633fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb63[];
+extern VTBL_ENTRY _ZTV4bb63[];
+Class_Descriptor cd_bb63 = { "bb63", // class name
+ 0,0,//no base classes
+ &(vtc_bb63[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4bb63),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4bb63),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc63 {
+ int c;
+ cc63(); // _ZN4cc63C1Ev
+ virtual void foo(); // _ZN4cc633fooEv
+ ~cc63(); // tgen
+};
+//SIG(-1 cc63) C1{ v1 Fi}
+
+
+ cc63 ::cc63(){ note_ctor("cc63", this);}
+void cc63 ::foo(){vfunc_called(this, "_ZN4cc633fooEv");}
+cc63 ::~cc63(){ note_dtor("cc63", this);} // tgen
+
+static void Test_cc63()
+{
+ extern Class_Descriptor cd_cc63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_cc63, buf);
+ cc63 *dp, &lv = *(dp=new (buf) cc63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(cc63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc63)");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc63.c");
+ test_class_info(&lv, &cd_cc63);
+ dp->~cc63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc63(Test_cc63, "cc63", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4cc63C1Ev();
+extern void _ZN4cc63D1Ev();
+Name_Map name_map_cc63[] = {
+ NSPAIR(_ZN4cc63C1Ev),
+ NSPAIR(_ZN4cc63D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4cc63[];
+extern void _ZN4cc633fooEv();
+static VTBL_ENTRY vtc_cc63[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4cc63[0]),
+ (VTBL_ENTRY)&_ZN4cc633fooEv,
+};
+extern VTBL_ENTRY _ZTI4cc63[];
+extern VTBL_ENTRY _ZTV4cc63[];
+Class_Descriptor cd_cc63 = { "cc63", // class name
+ 0,0,//no base classes
+ &(vtc_cc63[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4cc63),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4cc63),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd63 {
+ int d;
+ dd63(); // _ZN4dd63C1Ev
+ virtual void foo(); // _ZN4dd633fooEv
+ ~dd63(); // tgen
+};
+//SIG(-1 dd63) C1{ v1 Fi}
+
+
+ dd63 ::dd63(){ note_ctor("dd63", this);}
+void dd63 ::foo(){vfunc_called(this, "_ZN4dd633fooEv");}
+dd63 ::~dd63(){ note_dtor("dd63", this);} // tgen
+
+static void Test_dd63()
+{
+ extern Class_Descriptor cd_dd63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_dd63, buf);
+ dd63 *dp, &lv = *(dp=new (buf) dd63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(dd63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd63)");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd63.d");
+ test_class_info(&lv, &cd_dd63);
+ dp->~dd63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd63(Test_dd63, "dd63", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN4dd63C1Ev();
+extern void _ZN4dd63D1Ev();
+Name_Map name_map_dd63[] = {
+ NSPAIR(_ZN4dd63C1Ev),
+ NSPAIR(_ZN4dd63D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI4dd63[];
+extern void _ZN4dd633fooEv();
+static VTBL_ENTRY vtc_dd63[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4dd63[0]),
+ (VTBL_ENTRY)&_ZN4dd633fooEv,
+};
+extern VTBL_ENTRY _ZTI4dd63[];
+extern VTBL_ENTRY _ZTV4dd63[];
+Class_Descriptor cd_dd63 = { "dd63", // class name
+ 0,0,//no base classes
+ &(vtc_dd63[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI4dd63),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV4dd63),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63 : virtual aa63 , virtual bb63 {
+ int e;
+ ee63(const ABISELECT(__tsi64,int) *const *); // _ZN4ee63C2Ev
+ virtual void foo(); // _ZN4ee633fooEv
+ ~ee63(); // tgen
+ ee63(); // tgen
+};
+//SIG(-1 ee63) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ee63 ::ee63(const ABISELECT(__tsi64,int) *const *){}
+void ee63 ::foo(){vfunc_called(this, "_ZN4ee633fooEv");}
+ee63 ::~ee63(){ note_dtor("ee63", this);} // tgen
+ee63 ::ee63(){ note_ctor("ee63", this);} // tgen
+
+static void Test_ee63()
+{
+ extern Class_Descriptor cd_ee63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ee63, buf);
+ ee63 *dp, &lv = *(dp=new (buf) ee63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ee63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63)");
+ check_base_class_offset(lv, (aa63*), ABISELECT(16,8), "ee63");
+ check_base_class_offset(lv, (bb63*), ABISELECT(32,16), "ee63");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee63.e");
+ test_class_info(&lv, &cd_ee63);
+ dp->~ee63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63(Test_ee63, "ee63", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ee63C1Ev();
+extern void _ZN4ee63D1Ev();
+Name_Map name_map_ee63[] = {
+ NSPAIR(_ZN4ee63C1Ev),
+ NSPAIR(_ZN4ee63D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa63;
+extern VTBL_ENTRY _ZTI4aa63[];
+extern VTBL_ENTRY _ZTV4aa63[];
+extern Class_Descriptor cd_bb63;
+extern VTBL_ENTRY _ZTI4bb63[];
+extern VTBL_ENTRY _ZTV4bb63[];
+static Base_Class bases_ee63[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa63, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_bb63, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ee63[];
+extern void _ZN4ee633fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv)();
+extern void ABISELECT(_ZThn16_N4ee633fooEv,_ZThn8_N4ee633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv)();
+extern void ABISELECT(_ZThn32_N4ee633fooEv,_ZThn16_N4ee633fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee63[0]),
+ (VTBL_ENTRY)&_ZN4ee633fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv),
+};
+extern VTBL_ENTRY _ZTV4ee63[];
+static VTT_ENTRY vtt_ee63[] = {
+ {&(_ZTV4ee63[4]), 4,13},
+ {&(_ZTV4ee63[8]), 8,13},
+ {&(_ZTV4ee63[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ee63[];
+extern VTBL_ENTRY _ZTV4ee63[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee63[];
+static VTBL_ENTRY alt_thunk_names157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee633fooEv,_ZThn16_N4ee633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee633fooEv,_ZThn8_N4ee633fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63 = { "ee63", // class name
+ bases_ee63, 2,
+ &(vtc_ee63[0]), // expected_vtbl_contents
+ &(vtt_ee63[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ee63),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ee63),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ee63),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ff63 : virtual cc63 , virtual dd63 {
+ int f;
+ ff63(const ABISELECT(__tsi64,int) *const *); // _ZN4ff63C2Ev
+ virtual void foo(); // _ZN4ff633fooEv
+ ~ff63(); // tgen
+ ff63(); // tgen
+};
+//SIG(-1 ff63) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+ ff63 ::ff63(const ABISELECT(__tsi64,int) *const *){}
+void ff63 ::foo(){vfunc_called(this, "_ZN4ff633fooEv");}
+ff63 ::~ff63(){ note_dtor("ff63", this);} // tgen
+ff63 ::ff63(){ note_ctor("ff63", this);} // tgen
+
+static void Test_ff63()
+{
+ extern Class_Descriptor cd_ff63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_ff63, buf);
+ ff63 *dp, &lv = *(dp=new (buf) ff63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(ff63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ff63)");
+ check_base_class_offset(lv, (cc63*), ABISELECT(16,8), "ff63");
+ check_base_class_offset(lv, (dd63*), ABISELECT(32,16), "ff63");
+ check_field_offset(lv, f, ABISELECT(8,4), "ff63.f");
+ test_class_info(&lv, &cd_ff63);
+ dp->~ff63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vff63(Test_ff63, "ff63", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN4ff63C1Ev();
+extern void _ZN4ff63D1Ev();
+Name_Map name_map_ff63[] = {
+ NSPAIR(_ZN4ff63C1Ev),
+ NSPAIR(_ZN4ff63D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_cc63;
+extern VTBL_ENTRY _ZTI4cc63[];
+extern VTBL_ENTRY _ZTV4cc63[];
+extern Class_Descriptor cd_dd63;
+extern VTBL_ENTRY _ZTI4dd63[];
+extern VTBL_ENTRY _ZTV4dd63[];
+static Base_Class bases_ff63[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_cc63, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_dd63, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4ff63[];
+extern void _ZN4ff633fooEv();
+extern void ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv)();
+extern void ABISELECT(_ZThn16_N4ff633fooEv,_ZThn8_N4ff633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv)();
+extern void ABISELECT(_ZThn32_N4ff633fooEv,_ZThn16_N4ff633fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ff63[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff63[0]),
+ (VTBL_ENTRY)&_ZN4ff633fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv),
+};
+extern VTBL_ENTRY _ZTV4ff63[];
+static VTT_ENTRY vtt_ff63[] = {
+ {&(_ZTV4ff63[4]), 4,13},
+ {&(_ZTV4ff63[8]), 8,13},
+ {&(_ZTV4ff63[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI4ff63[];
+extern VTBL_ENTRY _ZTV4ff63[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff63[];
+static VTBL_ENTRY alt_thunk_names158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff633fooEv,_ZThn16_N4ff633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff633fooEv,_ZThn8_N4ff633fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ff63 = { "ff63", // class name
+ bases_ff63, 2,
+ &(vtc_ff63[0]), // expected_vtbl_contents
+ &(vtt_ff63[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI4ff63),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4ff63),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4ff63),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct gg63 : virtual ee63 , virtual ff63 {
+ int g;
+ gg63(const ABISELECT(__tsi64,int) *const *); // _ZN4gg63C2Ev
+ virtual void foo(); // _ZN4gg633fooEv
+ ~gg63(); // tgen
+ gg63(); // tgen
+};
+//SIG(1 gg63) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+ gg63 ::gg63(const ABISELECT(__tsi64,int) *const *){}
+void gg63 ::foo(){vfunc_called(this, "_ZN4gg633fooEv");}
+gg63 ::~gg63(){ note_dtor("gg63", this);} // tgen
+gg63 ::gg63(){ note_ctor("gg63", this);} // tgen
+
+static void Test_gg63()
+{
+ extern Class_Descriptor cd_gg63;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_gg63, buf);
+ gg63 *dp, &lv = *(dp=new (buf) gg63());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(gg63)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(gg63)");
+ check_base_class_offset(lv, (aa63*)(ee63*), ABISELECT(32,16), "gg63");
+ check_base_class_offset(lv, (bb63*)(ee63*), ABISELECT(48,24), "gg63");
+ check_base_class_offset(lv, (ee63*), ABISELECT(16,8), "gg63");
+ check_base_class_offset(lv, (cc63*)(ff63*), ABISELECT(80,40), "gg63");
+ check_base_class_offset(lv, (dd63*)(ff63*), ABISELECT(96,48), "gg63");
+ check_base_class_offset(lv, (ff63*), ABISELECT(64,32), "gg63");
+ check_field_offset(lv, g, ABISELECT(8,4), "gg63.g");
+ test_class_info(&lv, &cd_gg63);
+ dp->~gg63();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vgg63(Test_gg63, "gg63", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN4gg63C1Ev();
+extern void _ZN4gg63D1Ev();
+Name_Map name_map_gg63[] = {
+ NSPAIR(_ZN4gg63C1Ev),
+ NSPAIR(_ZN4gg63D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa63;
+extern VTBL_ENTRY _ZTI4aa63[];
+extern VTBL_ENTRY _ZTV4aa63[];
+extern Class_Descriptor cd_bb63;
+extern VTBL_ENTRY _ZTI4bb63[];
+extern VTBL_ENTRY _ZTV4bb63[];
+extern Class_Descriptor cd_ee63;
+extern VTBL_ENTRY _ZTI4ee63[];
+extern VTBL_ENTRY _ZTV4ee63[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ee63[];
+extern Class_Descriptor cd_cc63;
+extern VTBL_ENTRY _ZTI4cc63[];
+extern VTBL_ENTRY _ZTV4cc63[];
+extern Class_Descriptor cd_dd63;
+extern VTBL_ENTRY _ZTI4dd63[];
+extern VTBL_ENTRY _ZTV4dd63[];
+extern Class_Descriptor cd_ff63;
+extern VTBL_ENTRY _ZTI4ff63[];
+extern VTBL_ENTRY _ZTV4ff63[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4ff63[];
+static Base_Class bases_gg63[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa63, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_bb63, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_ee63, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_cc63, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_dd63, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_ff63, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4gg63[];
+extern void _ZN4gg633fooEv();
+extern void ABISELECT(_ZTv0_n40_N4gg633fooEv,_ZTv0_n20_N4gg633fooEv)();
+extern void ABISELECT(_ZThn16_N4gg633fooEv,_ZThn8_N4gg633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv)();
+extern void ABISELECT(_ZThn32_N4gg633fooEv,_ZThn16_N4gg633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv)();
+extern void ABISELECT(_ZThn48_N4gg633fooEv,_ZThn24_N4gg633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N4gg633fooEv,_ZTv0_n20_N4gg633fooEv)();
+extern void ABISELECT(_ZThn64_N4gg633fooEv,_ZThn32_N4gg633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv)();
+extern void ABISELECT(_ZThn80_N4gg633fooEv,_ZThn40_N4gg633fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv)();
+extern void ABISELECT(_ZThn96_N4gg633fooEv,_ZThn48_N4gg633fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_gg63[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&_ZN4gg633fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg633fooEv,_ZTv0_n20_N4gg633fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N4gg633fooEv,_ZTv0_n20_N4gg633fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI4gg63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv),
+};
+extern VTBL_ENTRY _ZTV4gg63[];
+extern void _ZN4ee633fooEv();
+static VTBL_ENTRY _tg__ZTV4ee63__4gg63[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ee63[0]),
+ (VTBL_ENTRY)&_ZN4ee633fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv)();
+extern void ABISELECT(_ZThn16_N4ee633fooEv,_ZThn8_N4ee633fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4aa63__4ee63__4gg63[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ee63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv)();
+extern void ABISELECT(_ZThn32_N4ee633fooEv,_ZThn16_N4ee633fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb63__4ee63__4gg63[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ee63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv),
+};
+extern void _ZN4ff633fooEv();
+static VTBL_ENTRY _tg__ZTV4ff63__4gg63[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4ff63[0]),
+ (VTBL_ENTRY)&_ZN4ff633fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv)();
+extern void ABISELECT(_ZThn16_N4ff633fooEv,_ZThn8_N4ff633fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4cc63__4ff63__4gg63[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4ff63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv)();
+extern void ABISELECT(_ZThn32_N4ff633fooEv,_ZThn16_N4ff633fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4dd63__4ff63__4gg63[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI4ff63[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv),
+};
+static VTT_ENTRY vtt_gg63[] = {
+ {&(_ZTV4gg63[8]), 8,37},
+ {&(_ZTV4gg63[14]), 14,37},
+ {&(_ZTV4gg63[18]), 18,37},
+ {&(_ZTV4gg63[22]), 22,37},
+ {&(_ZTV4gg63[28]), 28,37},
+ {&(_ZTV4gg63[32]), 32,37},
+ {&(_ZTV4gg63[36]), 36,37},
+ {&(_tg__ZTV4ee63__4gg63[4]), 4,5},
+ {&(_tg__ZTV4aa63__4ee63__4gg63[3]), 3,4},
+ {&(_tg__ZTV4bb63__4ee63__4gg63[3]), 3,4},
+ {&(_tg__ZTV4ff63__4gg63[4]), 4,5},
+ {&(_tg__ZTV4cc63__4ff63__4gg63[3]), 3,4},
+ {&(_tg__ZTV4dd63__4ff63__4gg63[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4gg63[];
+extern VTBL_ENTRY _ZTV4gg63[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4gg63[];
+static VTBL_ENTRY alt_thunk_names159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ff633fooEv,_ZTv0_n12_N4ff633fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ff633fooEv,_ZThn16_N4ff633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ff633fooEv,_ZThn8_N4ff633fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4ee633fooEv,_ZTv0_n12_N4ee633fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4ee633fooEv,_ZThn16_N4ee633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4ee633fooEv,_ZThn8_N4ee633fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N4gg633fooEv,_ZTv0_n12_N4gg633fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N4gg633fooEv,_ZThn48_N4gg633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N4gg633fooEv,_ZThn40_N4gg633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N4gg633fooEv,_ZThn24_N4gg633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N4gg633fooEv,_ZThn16_N4gg633fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N4gg633fooEv,_ZTv0_n20_N4gg633fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N4gg633fooEv,_ZThn32_N4gg633fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4gg633fooEv,_ZThn8_N4gg633fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_gg63 = { "gg63", // class name
+ bases_gg63, 6,
+ &(vtc_gg63[0]), // expected_vtbl_contents
+ &(vtt_gg63[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI4gg63),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV4gg63),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4gg63),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names159,
+};
+#endif // __cplusplus
+
+//============================================================================
+